Compare commits
862 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2efac7fc23 | ||
|
|
d44cecdd50 | ||
|
|
297dd87efc | ||
|
|
61db68ff59 | ||
|
|
0f5c6f264d | ||
|
|
7d724608c4 | ||
|
|
e8b9ba18bc | ||
|
|
e5c75bc0ac | ||
|
|
84e4d6a393 | ||
|
|
f2094d7a9c | ||
|
|
beb14de978 | ||
|
|
2397aed7d9 | ||
|
|
d10418478d | ||
|
|
c209479a7f | ||
|
|
a208d6b5cd | ||
|
|
9cf866070d | ||
|
|
a337f004c1 | ||
|
|
eee9c0dbf0 | ||
|
|
a397a075d1 | ||
|
|
93f3516b35 | ||
|
|
d2ac550c57 | ||
|
|
2dd6b962cc | ||
|
|
7cca21d762 | ||
|
|
92b1427950 | ||
|
|
15e41d0f77 | ||
|
|
0e07893041 | ||
|
|
87a6d574ed | ||
|
|
ab407dd70b | ||
|
|
8f06a18584 | ||
|
|
0fd8a8f32c | ||
|
|
bdd447f0f7 | ||
|
|
5e476eba5a | ||
|
|
99e1772050 | ||
|
|
5508823505 | ||
|
|
ca3ab742f0 | ||
|
|
0d78cfb3d2 | ||
|
|
7038b2674b | ||
|
|
f6e9488e74 | ||
|
|
04b3b0ac5e | ||
|
|
2aeae17ba6 | ||
|
|
d2f89e79ba | ||
|
|
16861c4d03 | ||
|
|
e8a3c10175 | ||
|
|
5768a6c688 | ||
|
|
42e9185a4d | ||
|
|
bf64f9ac21 | ||
|
|
d80b3ffc8b | ||
|
|
7e8d640627 | ||
|
|
aff7e275a6 | ||
|
|
45cc1929d4 | ||
|
|
3b22a2d2e6 | ||
|
|
1a8596a437 | ||
|
|
197474aaaa | ||
|
|
7319f54a9b | ||
|
|
fb7980305e | ||
|
|
f63eccc824 | ||
|
|
0da9ffa601 | ||
|
|
f236fe6494 | ||
|
|
fbbca19d52 | ||
|
|
0c077908a2 | ||
|
|
03cf3efc9c | ||
|
|
9117632139 | ||
|
|
7d169bc0fc | ||
|
|
186ae63083 | ||
|
|
e18450562e | ||
|
|
cadda17361 | ||
|
|
fbb969c028 | ||
|
|
7bac43b93c | ||
|
|
8f8c1e705c | ||
|
|
7a09986e0c | ||
|
|
51e9c6faa1 | ||
|
|
9129bdb0c0 | ||
|
|
05266a9dfd | ||
|
|
f42b9159e5 | ||
|
|
4afe87e550 | ||
|
|
bd24529ef1 | ||
|
|
d1b68c3c47 | ||
|
|
605cc1c938 | ||
|
|
7376be6afe | ||
|
|
5517c5c9af | ||
|
|
7d9b03fd31 | ||
|
|
ab78c51dc5 | ||
|
|
59aeea0b28 | ||
|
|
a5c9e152bc | ||
|
|
597df874a0 | ||
|
|
5062880e68 | ||
|
|
81259e99d7 | ||
|
|
55e9fc7a52 | ||
|
|
c45c357f56 | ||
|
|
560903fefe | ||
|
|
903c84ac8b | ||
|
|
c4233c4c9b | ||
|
|
e7f95cbed0 | ||
|
|
e59f33705a | ||
|
|
d0511c3211 | ||
|
|
4d288f7694 | ||
|
|
c3526bce99 | ||
|
|
0f9613cc65 | ||
|
|
53c1b80ec6 | ||
|
|
2c6e8a41c7 | ||
|
|
d1f8e02485 | ||
|
|
202d6a6a09 | ||
|
|
500d67ef1c | ||
|
|
b74fec078e | ||
|
|
5646de21f3 | ||
|
|
1c7ca064eb | ||
|
|
1f7c5e246b | ||
|
|
9c42712cb8 | ||
|
|
0558a2fd5a | ||
|
|
0f3558ff9c | ||
|
|
30ef82a2bf | ||
|
|
10f22fed70 | ||
|
|
f5ceaaf200 | ||
|
|
beb8fff0be | ||
|
|
8d69864933 | ||
|
|
194c182e8c | ||
|
|
71f2f43ca6 | ||
|
|
99007ec463 | ||
|
|
60fd01ec60 | ||
|
|
683e3fd594 | ||
|
|
b48bdb0ff6 | ||
|
|
e3a5d7fe37 | ||
|
|
96df495dd6 | ||
|
|
2dc8cf5974 | ||
|
|
9924aaf850 | ||
|
|
c197093143 | ||
|
|
74dab4ca50 | ||
|
|
7f1c45e1d9 | ||
|
|
6ab3c0a045 | ||
|
|
8527b9e12f | ||
|
|
92d004241c | ||
|
|
11380aaf32 | ||
|
|
99f6062403 | ||
|
|
9d8452eef0 | ||
|
|
341eefd647 | ||
|
|
ba041f3b20 | ||
|
|
ac441b6ac9 | ||
|
|
88bc90561a | ||
|
|
da53a0471d | ||
|
|
1e1141acc8 | ||
|
|
2b5915b625 | ||
|
|
10a6a2606e | ||
|
|
05a12813c2 | ||
|
|
2a5faa0271 | ||
|
|
5f430e1f97 | ||
|
|
cddb713ba1 | ||
|
|
f1bc6322c3 | ||
|
|
1c6ff9d9a3 | ||
|
|
520867e0fe | ||
|
|
8da11c4662 | ||
|
|
418860718c | ||
|
|
ab214d4c37 | ||
|
|
3be610fdd2 | ||
|
|
6a4eb7e768 | ||
|
|
f1bda28edb | ||
|
|
accd9d0f19 | ||
|
|
4bd908d20a | ||
|
|
923af93fc3 | ||
|
|
631d038526 | ||
|
|
cb00fd4529 | ||
|
|
f39d311242 | ||
|
|
2ce3fdf7ac | ||
|
|
1c382ad069 | ||
|
|
fa3613c5a4 | ||
|
|
bdfa25bc86 | ||
|
|
c26ed8f23d | ||
|
|
fda1332b58 | ||
|
|
b907210950 | ||
|
|
ec93df4efa | ||
|
|
cc7584e340 | ||
|
|
da1326a34d | ||
|
|
59f46ddfe5 | ||
|
|
b0eff944e1 | ||
|
|
372367913b | ||
|
|
25811cee65 | ||
|
|
8ab8ef1fec | ||
|
|
a2b15b4ea4 | ||
|
|
d8b9f6b70e | ||
|
|
4738bda72e | ||
|
|
0f827d6994 | ||
|
|
5b9778bd5f | ||
|
|
76a270ab66 | ||
|
|
f303dabffc | ||
|
|
21927830bf | ||
|
|
d4f2bbc32b | ||
|
|
b3f683ea38 | ||
|
|
9f44210d82 | ||
|
|
9b449a8350 | ||
|
|
cc91b4bd60 | ||
|
|
0ace4281df | ||
|
|
22915d5b12 | ||
|
|
e960e9c413 | ||
|
|
006e3ed14e | ||
|
|
c3dde0b518 | ||
|
|
5866679f7c | ||
|
|
f182be7896 | ||
|
|
d41ea63e31 | ||
|
|
8d159c06da | ||
|
|
8aa88f4aab | ||
|
|
0a3803c941 | ||
|
|
2b9f2027f5 | ||
|
|
bc6b960a80 | ||
|
|
77545868c3 | ||
|
|
cfd6918b70 | ||
|
|
a4956730c3 | ||
|
|
4cd47049fa | ||
|
|
a5f4bb7eec | ||
|
|
f402b12ce3 | ||
|
|
b204c0f896 | ||
|
|
93d945d403 | ||
|
|
ce9948699a | ||
|
|
6a2ee706d9 | ||
|
|
ad79f651d8 | ||
|
|
739e51ce9a | ||
|
|
7a343196f1 | ||
|
|
8099005405 | ||
|
|
9a37a8af4a | ||
|
|
ae64ec2897 | ||
|
|
fd22a6233e | ||
|
|
6bafe02714 | ||
|
|
1ff57cb314 | ||
|
|
07c031260e | ||
|
|
de0585128c | ||
|
|
a089131884 | ||
|
|
22945a1ba9 | ||
|
|
5520f6767e | ||
|
|
f0544da7dc | ||
|
|
e5d53567ae | ||
|
|
f4780b88ef | ||
|
|
bbaa2154de | ||
|
|
272ce10298 | ||
|
|
0cc6fee10b | ||
|
|
c1d793c10f | ||
|
|
eeb6a3b133 | ||
|
|
45044d1a0c | ||
|
|
aa81ca7332 | ||
|
|
86b31d8ba7 | ||
|
|
d30f723f84 | ||
|
|
e25b8b0d95 | ||
|
|
7ef920ce12 | ||
|
|
0d0f43f783 | ||
|
|
8742c90560 | ||
|
|
b8ea4803ca | ||
|
|
6b3fb2d8e4 | ||
|
|
6ff8af5272 | ||
|
|
847883c387 | ||
|
|
7b9a76f748 | ||
|
|
edd23a9517 | ||
|
|
cf9017f05f | ||
|
|
386efe8428 | ||
|
|
2367807440 | ||
|
|
4c5806856e | ||
|
|
09c678e341 | ||
|
|
63688446d5 | ||
|
|
9c7eab66e7 | ||
|
|
9d74a9e989 | ||
|
|
2b38da2edd | ||
|
|
59146657ab | ||
|
|
44e8ed487f | ||
|
|
71d878a99c | ||
|
|
09c22d9083 | ||
|
|
3f3f99bded | ||
|
|
16de8f7129 | ||
|
|
857a59ae9d | ||
|
|
75f92c2846 | ||
|
|
53ba841568 | ||
|
|
50642c518f | ||
|
|
4a32db9c86 | ||
|
|
864c8270ea | ||
|
|
94955a4f56 | ||
|
|
5b498b35dc | ||
|
|
2cc4cc24e0 | ||
|
|
79fce310ae | ||
|
|
3bae3d127a | ||
|
|
9637f7f409 | ||
|
|
23aa8049c6 | ||
|
|
ffa3e5bd09 | ||
|
|
dd0a2863a6 | ||
|
|
336ba829ab | ||
|
|
083f1baf61 | ||
|
|
a6f2e0f638 | ||
|
|
fce0c862bb | ||
|
|
c7fa4db0a5 | ||
|
|
ac09b5e2bc | ||
|
|
a1e0b74fcc | ||
|
|
bb4576c4ab | ||
|
|
b74c003c39 | ||
|
|
e9f57535b5 | ||
|
|
e813ea996d | ||
|
|
449e6f2eb7 | ||
|
|
6840363b9b | ||
|
|
0b1e2ba0a3 | ||
|
|
6ef2e2cc50 | ||
|
|
2576abc756 | ||
|
|
b03bfc5efd | ||
|
|
d7fe661aa4 | ||
|
|
1423fb7cea | ||
|
|
bd9261af97 | ||
|
|
7776b7af6d | ||
|
|
549aff4ce6 | ||
|
|
631e33affe | ||
|
|
94e8022772 | ||
|
|
3fda89d7c4 | ||
|
|
2c6f2da512 | ||
|
|
64d0b39bfa | ||
|
|
984c6c54ba | ||
|
|
c9d150b36b | ||
|
|
ce2a0221e0 | ||
|
|
425b83eff8 | ||
|
|
f00ce25f7b | ||
|
|
c29b3acdc1 | ||
|
|
c8342112c8 | ||
|
|
68c1fb7c5d | ||
|
|
1415a788ad | ||
|
|
49a1282cfb | ||
|
|
3527399c24 | ||
|
|
9fe70bb963 | ||
|
|
cb07593455 | ||
|
|
348d0227f9 | ||
|
|
daa8c7f8c9 | ||
|
|
59fd81a2e2 | ||
|
|
a2ff7db3e2 | ||
|
|
4b15867b80 | ||
|
|
710a5018aa | ||
|
|
7a9648775c | ||
|
|
95eda3498f | ||
|
|
855651d625 | ||
|
|
5af57107f9 | ||
|
|
121a314ef1 | ||
|
|
8fb44e6892 | ||
|
|
33b340dcaa | ||
|
|
67dff10638 | ||
|
|
895437e02d | ||
|
|
d3a3a76421 | ||
|
|
8af781e449 | ||
|
|
5d7a120e50 | ||
|
|
4b8097e154 | ||
|
|
5efc077d8d | ||
|
|
bb28baec68 | ||
|
|
016e7b268f | ||
|
|
bd13b988b1 | ||
|
|
1d2f9e44c4 | ||
|
|
85ed0d2295 | ||
|
|
8f9259c741 | ||
|
|
1c3f989220 | ||
|
|
2c60a188d9 | ||
|
|
4efd103b03 | ||
|
|
327308a9d1 | ||
|
|
1e47744868 | ||
|
|
772147a6ee | ||
|
|
f1af46cfa6 | ||
|
|
9a97abf0e9 | ||
|
|
72db8c8f42 | ||
|
|
7e82f7a9cc | ||
|
|
af51b8aa87 | ||
|
|
91d3e6f391 | ||
|
|
041b1a9f17 | ||
|
|
85916455a6 | ||
|
|
74b6c9c628 | ||
|
|
4e810c850c | ||
|
|
42bad872d7 | ||
|
|
8dff8f9969 | ||
|
|
4d8db42292 | ||
|
|
5720e0190f | ||
|
|
dac7c7795c | ||
|
|
800b9f164d | ||
|
|
373232aa93 | ||
|
|
d66074cdfc | ||
|
|
5e60b5eada | ||
|
|
d601a74b8b | ||
|
|
b7ae37f6d7 | ||
|
|
09d15124b0 | ||
|
|
6d6f46ad4d | ||
|
|
26f835a0ac | ||
|
|
39ee8e03ae | ||
|
|
2139d3983d | ||
|
|
d33fcc2da6 | ||
|
|
9688e7741f | ||
|
|
b432570f9d | ||
|
|
8bca38ad20 | ||
|
|
82419c80aa | ||
|
|
21d4c051bd | ||
|
|
03c143b316 | ||
|
|
f0a1fc667b | ||
|
|
1d545efe66 | ||
|
|
92805dc869 | ||
|
|
d446d77261 | ||
|
|
073e0fbbc4 | ||
|
|
4b4a4bbfce | ||
|
|
538cb58556 | ||
|
|
9038c4ea68 | ||
|
|
8415b8136d | ||
|
|
ccc51353ce | ||
|
|
a15214a04e | ||
|
|
26032dc8bd | ||
|
|
41f7ae4d3a | ||
|
|
896b62978f | ||
|
|
3391591fd2 | ||
|
|
3c7de270c5 | ||
|
|
31f3a71b9d | ||
|
|
5a4bc80867 | ||
|
|
eb14c43722 | ||
|
|
a45921e1ea | ||
|
|
8dbd57dd20 | ||
|
|
3a3684a3ed | ||
|
|
00b878d868 | ||
|
|
e390031c83 | ||
|
|
2ab9ff175d | ||
|
|
c5c699548a | ||
|
|
14f931f6d5 | ||
|
|
6f03353f96 | ||
|
|
d6c85b63d5 | ||
|
|
1d393f8e97 | ||
|
|
879186f936 | ||
|
|
2db96b625d | ||
|
|
8a73986a76 | ||
|
|
b14b35d67f | ||
|
|
5f639b3319 | ||
|
|
2ede4caa48 | ||
|
|
1346ca3e46 | ||
|
|
9a58359cb6 | ||
|
|
db959d2334 | ||
|
|
3381a99a0e | ||
|
|
52df492c25 | ||
|
|
382bcb986b | ||
|
|
4053ce9df6 | ||
|
|
30ae6fc8e2 | ||
|
|
d5f3da5550 | ||
|
|
7d0942bcc2 | ||
|
|
79bf1d6d5c | ||
|
|
b53b621808 | ||
|
|
deb4932850 | ||
|
|
7fcbd00819 | ||
|
|
a252da7448 | ||
|
|
7343f80834 | ||
|
|
b7abb129c8 | ||
|
|
f98bb890cf | ||
|
|
1207ab6607 | ||
|
|
88eb0e2a95 | ||
|
|
fd1ad0f57a | ||
|
|
97a23174af | ||
|
|
b13c0c4bae | ||
|
|
268a14f425 | ||
|
|
259eeb6c27 | ||
|
|
86aa61d3c0 | ||
|
|
13a70e1044 | ||
|
|
af2feac665 | ||
|
|
cb984199fc | ||
|
|
29a90b29d1 | ||
|
|
c3602f3278 | ||
|
|
f5aefc80ad | ||
|
|
5aea0ddca0 | ||
|
|
5d941ccc26 | ||
|
|
664ab24dd7 | ||
|
|
6c7337d2cb | ||
|
|
51e342d140 | ||
|
|
7c2f4774d1 | ||
|
|
c4715dd6a0 | ||
|
|
89213574d0 | ||
|
|
c16aed3424 | ||
|
|
92147c45ee | ||
|
|
efd4132415 | ||
|
|
3fc8ef3d88 | ||
|
|
d905e14fde | ||
|
|
49129f85dc | ||
|
|
3f814a3cf0 | ||
|
|
8bb31dc34a | ||
|
|
de5977a415 | ||
|
|
4e8fa347f7 | ||
|
|
2a888cbd8a | ||
|
|
1f74b8a56e | ||
|
|
313b46212f | ||
|
|
931d79ac7f | ||
|
|
342f6b58b6 | ||
|
|
30b5d4fb82 | ||
|
|
d1fae41a4d | ||
|
|
abc215a343 | ||
|
|
b48c20d1d5 | ||
|
|
6d99193df7 | ||
|
|
b73482843a | ||
|
|
551bce2ac2 | ||
|
|
f037bf9ac3 | ||
|
|
dc29921f7e | ||
|
|
91c95d7146 | ||
|
|
12386a5b57 | ||
|
|
940f886fd3 | ||
|
|
10b112483e | ||
|
|
26c8f164a9 | ||
|
|
082c1440c7 | ||
|
|
405265730d | ||
|
|
086f71a852 | ||
|
|
89df86c166 | ||
|
|
d1b2ed88ad | ||
|
|
668f117382 | ||
|
|
e3d0661240 | ||
|
|
0a1e6cf127 | ||
|
|
d1baa08bf8 | ||
|
|
7661185d2a | ||
|
|
b6b190de65 | ||
|
|
dff66a14cd | ||
|
|
e816494ec2 | ||
|
|
be2c1e4436 | ||
|
|
9424a41bea | ||
|
|
71fcbec454 | ||
|
|
39edd1f064 | ||
|
|
7f19043b63 | ||
|
|
3f5f0bb897 | ||
|
|
e4fe3c41a3 | ||
|
|
178eeb8e26 | ||
|
|
d30b4bea1b | ||
|
|
03bd438c7d | ||
|
|
225c8523e9 | ||
|
|
659cc9235a | ||
|
|
4b0123f750 | ||
|
|
5f4972701c | ||
|
|
29ad584b5c | ||
|
|
3c055ccf7a | ||
|
|
199c3c1990 | ||
|
|
c5177871bd | ||
|
|
7d67b9cc6e | ||
|
|
9329793e65 | ||
|
|
91cb67a25d | ||
|
|
b8f5b693b9 | ||
|
|
5a2d80bd50 | ||
|
|
fddf4fb89b | ||
|
|
c97bac9160 | ||
|
|
ff40a43ac5 | ||
|
|
c426cab2be | ||
|
|
afd73899dd | ||
|
|
0db603d498 | ||
|
|
2fa5744010 | ||
|
|
b1bd3f543d | ||
|
|
c1dd6f2a98 | ||
|
|
bbec0441a2 | ||
|
|
b974418c15 | ||
|
|
6f3972d946 | ||
|
|
d14f750a24 | ||
|
|
0a533f970f | ||
|
|
6f80da5b2b | ||
|
|
415299a7aa | ||
|
|
09bdde2d7b | ||
|
|
85dd573402 | ||
|
|
dc19003820 | ||
|
|
2ad9a12889 | ||
|
|
9dff6c5a8c | ||
|
|
177de86c10 | ||
|
|
6dfdc0c1ef | ||
|
|
a9a4fd7c93 | ||
|
|
5d9b60c3e4 | ||
|
|
7b10cf02a2 | ||
|
|
c0fae8aa5c | ||
|
|
345ad40e3c | ||
|
|
f5496845b6 | ||
|
|
9fef2d5713 | ||
|
|
f006cfa526 | ||
|
|
9dcb132625 | ||
|
|
aaf0127906 | ||
|
|
d93415cfad | ||
|
|
1120a5e2f3 | ||
|
|
d843b14ac6 | ||
|
|
b2c36c562b | ||
|
|
2df30b8f8e | ||
|
|
f75bfca1f4 | ||
|
|
a749dc7ff1 | ||
|
|
bd402c3514 | ||
|
|
41585414aa | ||
|
|
128c5e20a6 | ||
|
|
0ea53c672f | ||
|
|
f76baf34e6 | ||
|
|
a551a424b6 | ||
|
|
319e623727 | ||
|
|
de2e800ebd | ||
|
|
eb40bcf854 | ||
|
|
fa4a59884c | ||
|
|
80ecb65475 | ||
|
|
43ff904c57 | ||
|
|
5b36a76462 | ||
|
|
d0c1239c17 | ||
|
|
dc9fb17b01 | ||
|
|
71b6047692 | ||
|
|
a9670d0f85 | ||
|
|
67643cfc29 | ||
|
|
b56d98b66a | ||
|
|
901def1d12 | ||
|
|
f34e06c20f | ||
|
|
53246d0fcc | ||
|
|
085f64c85f | ||
|
|
e9ee2e68ca | ||
|
|
c5b7e15eb8 | ||
|
|
774533dc94 | ||
|
|
48b1d3b983 | ||
|
|
aaea29d1b0 | ||
|
|
86b65ef6df | ||
|
|
884e7492c1 | ||
|
|
12ea52f4f7 | ||
|
|
56c6105c56 | ||
|
|
af70df72ce | ||
|
|
4b1e7e1082 | ||
|
|
edc0b2c6ca | ||
|
|
4924764888 | ||
|
|
90aa1af213 | ||
|
|
a61b6a31bc | ||
|
|
c1d6e68cd6 | ||
|
|
403d24ff4b | ||
|
|
52c86a9bc3 | ||
|
|
1c2347ddab | ||
|
|
c6fb7aa4f7 | ||
|
|
0d917153da | ||
|
|
fded1dfe2d | ||
|
|
f5bd143eb6 | ||
|
|
c23c2d983b | ||
|
|
7873905bb5 | ||
|
|
4aa4094808 | ||
|
|
814bb7dcc4 | ||
|
|
a2209b5d84 | ||
|
|
f6cf5ff6ed | ||
|
|
c8fc8d1733 | ||
|
|
3d1176686f | ||
|
|
8dcd11f56f | ||
|
|
d171de204f | ||
|
|
a972dae0ae | ||
|
|
1f42bf8d4e | ||
|
|
bfcb15b998 | ||
|
|
f6bad7e3b6 | ||
|
|
eae123dbeb | ||
|
|
f2fbf0687b | ||
|
|
d53a71636d | ||
|
|
9c42a4987d | ||
|
|
85b186a956 | ||
|
|
2b74e1f59a | ||
|
|
c843e9bd84 | ||
|
|
ef44083253 | ||
|
|
a9fafc5147 | ||
|
|
f55a9e04b9 | ||
|
|
bda11e1541 | ||
|
|
53ffa9dace | ||
|
|
1886d7ddfc | ||
|
|
0bf721b108 | ||
|
|
943741871e | ||
|
|
33589430f7 | ||
|
|
5a438d1849 | ||
|
|
a0f69ae398 | ||
|
|
476923cf36 | ||
|
|
65f1c44ae6 | ||
|
|
f24d06977b | ||
|
|
35fea4b692 | ||
|
|
de36bcb13b | ||
|
|
b07dde4585 | ||
|
|
1172e7a8d0 | ||
|
|
5b9e12bba1 | ||
|
|
9e7e47847b | ||
|
|
b6f25900ee | ||
|
|
45f0e2227a | ||
|
|
ec6dc108a9 | ||
|
|
efe13abfd0 | ||
|
|
187aafaf51 | ||
|
|
a96fb0d2e2 | ||
|
|
cdd2121d55 | ||
|
|
6d792ee52b | ||
|
|
6be1ed9428 | ||
|
|
a12255dd1c | ||
|
|
11ba092bca | ||
|
|
623303f7ee | ||
|
|
f784411c4b | ||
|
|
3cf72856ff | ||
|
|
a6779e2057 | ||
|
|
0d65bf62b2 | ||
|
|
5788f1f811 | ||
|
|
221cbae5d9 | ||
|
|
ebbfcab754 | ||
|
|
caf0402115 | ||
|
|
01f0ec6a99 | ||
|
|
a73e408196 | ||
|
|
6bea0782e9 | ||
|
|
5b1642b26e | ||
|
|
1a74889015 | ||
|
|
db15387d07 | ||
|
|
a5c44ac8bc | ||
|
|
31e90d9031 | ||
|
|
07420a2c0d | ||
|
|
8d0f1e156d | ||
|
|
30de26176b | ||
|
|
1fc3cdf043 | ||
|
|
b94606e103 | ||
|
|
394aeab269 | ||
|
|
7576b8f407 | ||
|
|
6255d67944 | ||
|
|
c0ee7a1306 | ||
|
|
fc865e4986 | ||
|
|
4831413af0 | ||
|
|
ce91cd792c | ||
|
|
42b200b870 | ||
|
|
ca79a68011 | ||
|
|
dac14bf3be | ||
|
|
db38a475f1 | ||
|
|
07bac9c56b | ||
|
|
a75ca6c40a | ||
|
|
558c008ece | ||
|
|
772e739829 | ||
|
|
6cefe4465d | ||
|
|
5586dcdc3d | ||
|
|
01b6c28569 | ||
|
|
22fe972530 | ||
|
|
5b7da70eb9 | ||
|
|
b25401ce9e | ||
|
|
e6d6e35b4d | ||
|
|
d56cb00d8d | ||
|
|
2644f4b88d | ||
|
|
86683a963e | ||
|
|
05ceb6ea96 | ||
|
|
9ba2f9b023 | ||
|
|
9527d10ffe | ||
|
|
7d91e29519 | ||
|
|
fe8a28ed54 | ||
|
|
a50b0af067 | ||
|
|
2e8abff9a9 | ||
|
|
9e6940eb4e | ||
|
|
6f1ecda602 | ||
|
|
941ecdac62 | ||
|
|
a2230b0161 | ||
|
|
19656ae993 | ||
|
|
f7250f76d5 | ||
|
|
863ea0d354 | ||
|
|
1cce2fd6cb | ||
|
|
efc5ff8390 | ||
|
|
911c8ad6c4 | ||
|
|
cdb5de9dd3 | ||
|
|
c105c81b52 | ||
|
|
468ca00519 | ||
|
|
c37cf6d657 | ||
|
|
22f2208690 | ||
|
|
d0c46a3d3e | ||
|
|
22031f6a57 | ||
|
|
ca16a8b559 | ||
|
|
1cafb7629b | ||
|
|
203b5ae6ad | ||
|
|
4e47e1e227 | ||
|
|
45132ef7b8 | ||
|
|
57eaa5cddf | ||
|
|
ec0bae7a2e | ||
|
|
63abc464ac | ||
|
|
10f1a846b7 | ||
|
|
43648c6ca2 | ||
|
|
579d012427 | ||
|
|
810dab5d27 | ||
|
|
fc7a452107 | ||
|
|
ed98703212 | ||
|
|
457d9b3e97 | ||
|
|
9cc30dc3fe | ||
|
|
43654ffba1 | ||
|
|
d76998340a | ||
|
|
8bef192fcb | ||
|
|
975a56d3bd | ||
|
|
8a62346471 | ||
|
|
a0a83e9e58 | ||
|
|
16cf709d52 | ||
|
|
465542aac7 | ||
|
|
1123ad3aa1 | ||
|
|
5f3d417441 | ||
|
|
8b618652bb | ||
|
|
8e2102c8ce | ||
|
|
16e07c2766 | ||
|
|
bf9a629c94 | ||
|
|
77664f1056 | ||
|
|
9e72ba7740 | ||
|
|
567c23dafc | ||
|
|
5f103766fc | ||
|
|
10247e8e42 | ||
|
|
4e567f3d31 | ||
|
|
8ae27b7a8a | ||
|
|
394206e9ef | ||
|
|
b2f33740fe | ||
|
|
2ae9a4281b | ||
|
|
1a6fb756eb | ||
|
|
1e8ed9d47e | ||
|
|
e111883814 | ||
|
|
562adfc172 | ||
|
|
0c87d98914 | ||
|
|
bca384dc71 | ||
|
|
29c75d7798 | ||
|
|
8bbd830446 | ||
|
|
a9f425d6b2 | ||
|
|
9152514eb4 | ||
|
|
c1aee41233 | ||
|
|
13bdaf6c3f | ||
|
|
003ac6e01b | ||
|
|
577aa781bc | ||
|
|
8671928caf | ||
|
|
88e6b1ac1a | ||
|
|
2067344c18 | ||
|
|
b08563276b | ||
|
|
a8e8b25194 | ||
|
|
ff3c4b6881 | ||
|
|
72b833fe31 | ||
|
|
02f5a262d9 | ||
|
|
f9c4410e8d | ||
|
|
12261242e3 | ||
|
|
1913786e66 | ||
|
|
dda2735056 | ||
|
|
3ab955a654 | ||
|
|
4188def509 | ||
|
|
c2ce21b43d | ||
|
|
eb2fde29b3 | ||
|
|
314cd37e67 | ||
|
|
a42ab201f0 | ||
|
|
5c61feb04b | ||
|
|
557e05ae01 | ||
|
|
f787bbd3e6 | ||
|
|
2abd646ca4 | ||
|
|
ad65287eeb | ||
|
|
66a0d5e50f | ||
|
|
c5dab89eb5 | ||
|
|
b61478ca1e | ||
|
|
9c7bc59954 | ||
|
|
31bf5b5864 | ||
|
|
2ff4ce919f | ||
|
|
e918d53dfa | ||
|
|
3cae130e9d | ||
|
|
b3bd8b4345 | ||
|
|
51f4b16986 | ||
|
|
71ac9c59ef | ||
|
|
cbd566f6e7 | ||
|
|
1eff4dae73 | ||
|
|
5beb66f50a | ||
|
|
2cba5f3e1a | ||
|
|
9ca2fe4ca5 | ||
|
|
46f9cc5ec5 | ||
|
|
d756559062 | ||
|
|
1d1c9966ea | ||
|
|
b285dad5b5 | ||
|
|
37d215522a | ||
|
|
7577e5ff0f | ||
|
|
e474dc01b5 | ||
|
|
d3cf49aaef | ||
|
|
e62214adaa | ||
|
|
66cbf514f4 | ||
|
|
9b5f3b8c03 | ||
|
|
a3b64f3253 | ||
|
|
bc403e3bf7 | ||
|
|
7fd28f56b6 | ||
|
|
b957188797 | ||
|
|
bd9bcc6729 | ||
|
|
73148dda1d | ||
|
|
6b61051a16 | ||
|
|
95e1518335 | ||
|
|
f9bde30d5c | ||
|
|
ad0cd8e356 | ||
|
|
3a5a061717 | ||
|
|
19749a2102 | ||
|
|
fe435bdeea | ||
|
|
93f4be96b0 | ||
|
|
506773b46c | ||
|
|
447d6a5f01 | ||
|
|
2ed3aeb821 | ||
|
|
0eccf98592 | ||
|
|
af8875217e | ||
|
|
900e9e8148 | ||
|
|
2e005e3c6a | ||
|
|
9aaa7fc7c3 | ||
|
|
39ee88bdf2 | ||
|
|
0a9889f3af | ||
|
|
62422904f3 |
@@ -325,11 +325,11 @@ if (Tools::isSubmit('ajaxProductsPositions'))
|
||||
{
|
||||
if ($product = new Product((int)$pos[2]))
|
||||
if (isset($position) && $product->updatePosition($way, $position))
|
||||
echo "ok position $position for product $pos[2]\r\n";
|
||||
echo "ok position ".(int)$position." for product ".(int)$pos[2]."\r\n";
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "Can not update product '. $id_product . ' to position '.$position.' "}';
|
||||
echo '{"hasError" : true, "errors" : "Can not update product '. (int)$id_product . ' to position '.(int)$position.' "}';
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "This product ('.$id_product.') can t be loaded"}';
|
||||
echo '{"hasError" : true, "errors" : "This product ('.(int)$id_product.') can t be loaded"}';
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -562,11 +562,11 @@ if (Tools::isSubmit('getHookableList'))
|
||||
die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}');
|
||||
/* PrestaShop demo mode*/
|
||||
|
||||
if (!strlen(Tools::getValue('hooks_list')))
|
||||
if (!count(Tools::getValue('hooks_list')))
|
||||
die('{"hasError" : true, "errors" : ["Live Edit : no module on this page"]}');
|
||||
|
||||
$modules_list = explode(',', Tools::getValue('modules_list'));
|
||||
$hooks_list = explode(',', Tools::getValue('hooks_list'));
|
||||
$modules_list = Tools::getValue('modules_list');
|
||||
$hooks_list = Tools::getValue('hooks_list');
|
||||
$hookableList = array();
|
||||
|
||||
foreach ($modules_list as $module)
|
||||
@@ -621,42 +621,48 @@ if (Tools::isSubmit('saveHook'))
|
||||
/* PrestaShop demo mode */
|
||||
if (_PS_MODE_DEMO_)
|
||||
die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}');
|
||||
/* PrestaShop demo mode*/
|
||||
|
||||
$hooks_list = explode(',', Tools::getValue('hooks_list'));
|
||||
$id_shop = (int)Tools::getValue('id_shop');
|
||||
if ($id_shop)
|
||||
if (!$id_shop)
|
||||
$id_shop = Context::getContext()->shop->getId(true);
|
||||
|
||||
$res = true;
|
||||
$hookableList = array();
|
||||
// $_POST['hook'] is an array of id_module
|
||||
$hooks_list = Tools::getValue('hook');
|
||||
foreach ($hooks_list as $id_hook => $modules)
|
||||
{
|
||||
$hookableList = array();
|
||||
foreach ($hooks_list as $hook)
|
||||
// 1st, drop all previous hooked modules
|
||||
$sql = 'DELETE FROM `'._DB_PREFIX_.'hook_module`
|
||||
WHERE `id_hook` = '.(int)$id_hook.'
|
||||
AND id_shop = '.$id_shop;
|
||||
$res &= Db::getInstance()->execute($sql);
|
||||
|
||||
$i = 1;
|
||||
$value = '';
|
||||
$ids = array();
|
||||
// then prepare sql query to rehook all chosen modules(id_module, id_shop, id_hook, position)
|
||||
// position is i (autoincremented)
|
||||
foreach ($modules as $id_module)
|
||||
{
|
||||
$hook = trim($hook);
|
||||
if (!$hook)
|
||||
continue;
|
||||
|
||||
$sql = 'DELETE FROM '._DB_PREFIX_.'hook_module
|
||||
WHERE id_hook = (SELECT id_hook FROM '._DB_PREFIX_.'hook WHERE `name` = \''.pSQL($hook).'\' LIMIT 1)
|
||||
AND id_shop = '.$id_shop;
|
||||
Db::getInstance()->execute($sql);
|
||||
$hookedModules = explode(',', Tools::getValue($hook));
|
||||
$i = 1;
|
||||
$value = '';
|
||||
$ids = array();
|
||||
foreach ($hookedModules as $module)
|
||||
if (!in_array($id_module, $ids))
|
||||
{
|
||||
$id = explode('_', $module);
|
||||
if (!in_array($id[1], $ids))
|
||||
{
|
||||
$ids[] = $id[1];
|
||||
$value .= '('.(int)$id[1].', (SELECT id_hook FROM `'._DB_PREFIX_.'hook` WHERE `name` = \''.pSQL($hook).'\' LIMIT 0, 1), '.(int)$i.'),';
|
||||
}
|
||||
$i++;
|
||||
$ids[] = $id_module;
|
||||
$value .= '('.(int)$id_module.', '.$id_shop.', '.(int)$id_hook.', '.$i.'),';
|
||||
}
|
||||
$value = rtrim($value, ',');
|
||||
Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'hook_module (id_module, id_shop, id_hook, position) VALUES '.$value);
|
||||
|
||||
$i++;
|
||||
}
|
||||
$value = rtrim($value, ',');
|
||||
$res &= Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'hook_module`
|
||||
(id_module, id_shop, id_hook, position)
|
||||
VALUES '.$value);
|
||||
|
||||
}
|
||||
if ($res)
|
||||
$hasError = true;
|
||||
else
|
||||
$hasError = false;
|
||||
die('{"hasError" : false, "errors" : ""}');
|
||||
}
|
||||
|
||||
@@ -670,13 +676,13 @@ if (Tools::isSubmit('getAdminHomeElement'))
|
||||
$stream_context = @stream_context_create(array('http' => array('method'=> 'GET', 'timeout' => 5)));
|
||||
|
||||
// SCREENCAST
|
||||
if (@fsockopen('www.prestashop.com', 80, $errno, $errst, 3))
|
||||
if (@fsockopen('api.prestashop.com', 80, $errno, $errst, 3))
|
||||
$result['screencast'] = 'OK';
|
||||
else
|
||||
$result['screencast'] = 'NOK';
|
||||
|
||||
// PREACTIVATION
|
||||
$content = @file_get_contents($protocol.'://www.prestashop.com/partner/preactivation/preactivation-block.php?version=1.0&shop='.urlencode(Configuration::get('PS_SHOP_NAME')).'&protocol='.$protocol.'&url='.urlencode($_SERVER['HTTP_HOST']).'&iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)Context::getContext()->language->id.'&email='.urlencode(Configuration::get('PS_SHOP_EMAIL')).'&date_creation='._PS_CREATION_DATE_.'&v='._PS_VERSION_.'&security='.md5(Configuration::get('PS_SHOP_EMAIL')._COOKIE_IV_), false, $stream_context);
|
||||
$content = @file_get_contents($protocol.'://api.prestashop.com/partner/preactivation/preactivation-block.php?version=1.0&shop='.urlencode(Configuration::get('PS_SHOP_NAME')).'&protocol='.$protocol.'&url='.urlencode($_SERVER['HTTP_HOST']).'&iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)Context::getContext()->language->id.'&email='.urlencode(Configuration::get('PS_SHOP_EMAIL')).'&date_creation='._PS_CREATION_DATE_.'&v='._PS_VERSION_.'&security='.md5(Configuration::get('PS_SHOP_EMAIL')._COOKIE_IV_), false, $stream_context);
|
||||
if (!$content)
|
||||
$result['partner_preactivation'] = 'NOK';
|
||||
else
|
||||
@@ -702,7 +708,7 @@ if (Tools::isSubmit('getAdminHomeElement'))
|
||||
}
|
||||
|
||||
// PREACTIVATION PAYPAL WARNING
|
||||
$content = @file_get_contents('https://www.prestashop.com/partner/preactivation/preactivation-warnings.php?version=1.0&partner=paypal&iso_country='.Tools::strtolower(Context::getContext()->country->iso_code).'&iso_lang='.Tools::strtolower(Context::getContext()->language->iso_code).'&id_lang='.(int)Context::getContext()->language->id.'&email='.urlencode(Configuration::get('PS_SHOP_EMAIL')).'&security='.md5(Configuration::get('PS_SHOP_EMAIL')._COOKIE_IV_), false, $stream_context);
|
||||
$content = @file_get_contents('https://api.prestashop.com/partner/preactivation/preactivation-warnings.php?version=1.0&partner=paypal&iso_country='.Tools::strtolower(Context::getContext()->country->iso_code).'&iso_lang='.Tools::strtolower(Context::getContext()->language->iso_code).'&id_lang='.(int)Context::getContext()->language->id.'&email='.urlencode(Configuration::get('PS_SHOP_EMAIL')).'&security='.md5(Configuration::get('PS_SHOP_EMAIL')._COOKIE_IV_), false, $stream_context);
|
||||
$content = explode('|', $content);
|
||||
if ($content[0] == 'OK' && Validate::isCleanHtml($content[1]))
|
||||
Configuration::updateValue('PS_PREACTIVATION_PAYPAL_WARNING', $content[1]);
|
||||
@@ -710,7 +716,7 @@ if (Tools::isSubmit('getAdminHomeElement'))
|
||||
Configuration::updateValue('PS_PREACTIVATION_PAYPAL_WARNING', '');
|
||||
|
||||
// DISCOVER PRESTASHOP
|
||||
$content = @file_get_contents($protocol.'://www.prestashop.com/partner/prestashop/prestashop-link.php?iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)Context::getContext()->language->id, false, $stream_context);
|
||||
$content = @file_get_contents($protocol.'://api.prestashop.com/partner/prestashop/prestashop-link.php?iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)Context::getContext()->language->id, false, $stream_context);
|
||||
if (!$content)
|
||||
$result['discover_prestashop'] = 'NOK';
|
||||
else
|
||||
@@ -721,10 +727,10 @@ if (Tools::isSubmit('getAdminHomeElement'))
|
||||
else
|
||||
$result['discover_prestashop'] = 'NOK';
|
||||
|
||||
if (@fsockopen('www.prestashop.com', 80, $errno, $errst, 3))
|
||||
$result['discover_prestashop'] .= '<iframe frameborder="no" style="margin: 0px; padding: 0px; width: 315px; height: 290px;" src="'.$protocol.'://www.prestashop.com/rss/news2.php?v='._PS_VERSION_.'&lang='.$isoUser.'"></iframe>';
|
||||
if (@fsockopen('api.prestashop.com', 80, $errno, $errst, 3))
|
||||
$result['discover_prestashop'] .= '<iframe frameborder="no" style="margin: 0px; padding: 0px; width: 315px; height: 290px;" src="'.$protocol.'://api.prestashop.com/rss/news2.php?v='._PS_VERSION_.'&lang='.$isoUser.'"></iframe>';
|
||||
|
||||
$content = @file_get_contents($protocol.'://www.prestashop.com/partner/paypal/paypal-tips.php?protocol='.$protocol.'&iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)Context::getContext()->language->id, false, $stream_context);
|
||||
$content = @file_get_contents($protocol.'://api.prestashop.com/partner/paypal/paypal-tips.php?protocol='.$protocol.'&iso_country='.$isoCountry.'&iso_lang='.Tools::strtolower($isoUser).'&id_lang='.(int)Context::getContext()->language->id, false, $stream_context);
|
||||
$content = explode('|', $content);
|
||||
if ($content[0] == 'OK' && Validate::isCleanHtml($content[1]))
|
||||
$result['discover_prestashop'] .= $content[1];
|
||||
@@ -854,11 +860,11 @@ if (Tools::isSubmit('ajaxAttributesPositions'))
|
||||
{
|
||||
if ($attribute = new Attribute((int)$pos[2]))
|
||||
if (isset($position) && $attribute->updatePosition($way, $position))
|
||||
echo "ok position $position for attribute $pos[2]\r\n";
|
||||
echo "ok position ".(int)$position." for attribute ".(int)$pos[2]."\r\n";
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "Can not update attribute '. $id_attribute . ' to position '.$position.' "}';
|
||||
echo '{"hasError" : true, "errors" : "Can not update attribute '. (int)$id_attribute . ' to position '.(int)$position.' "}';
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "This attribute ('.$id_attribute.') can t be loaded"}';
|
||||
echo '{"hasError" : true, "errors" : "This attribute ('.(int)$id_attribute.') can t be loaded"}';
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -886,11 +892,11 @@ if (Tools::isSubmit('ajaxGroupsAttributesPositions'))
|
||||
{
|
||||
if ($group_attribute = new AttributeGroup((int)$pos[1]))
|
||||
if (isset($position) && $group_attribute->updatePosition($way, $position))
|
||||
echo "ok position $position for group attribute $pos[1]\r\n";
|
||||
echo "ok position ".(int)$position." for group attribute ".(int)$pos[1]."\r\n";
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "Can not update group attribute '. $id_attribute_group . ' to position '.$position.' "}';
|
||||
echo '{"hasError" : true, "errors" : "Can not update group attribute '. (int)$id_attribute_group . ' to position '.(int)$position.' "}';
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "This group attribute ('.$id_attribute_group.') can t be loaded"}';
|
||||
echo '{"hasError" : true, "errors" : "This group attribute ('.(int)$id_attribute_group.') can t be loaded"}';
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -918,11 +924,11 @@ if (Tools::isSubmit('ajaxFeaturesPositions'))
|
||||
{
|
||||
if ($feature = new Feature((int)$pos[2]))
|
||||
if (isset($position) && $feature->updatePosition($way, $position))
|
||||
echo "ok position $position for feature $pos[1]\r\n";
|
||||
echo "ok position ".(int)$position." for feature ".(int)$pos[1]."\r\n";
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "Can not update feature '. $id_feature . ' to position '.$position.' "}';
|
||||
echo '{"hasError" : true, "errors" : "Can not update feature '. (int)$id_feature . ' to position '.(int)$position.' "}';
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "This feature ('.$id_feature.') can t be loaded"}';
|
||||
echo '{"hasError" : true, "errors" : "This feature ('.(int)$id_feature.') can t be loaded"}';
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -945,11 +951,11 @@ if (Tools::isSubmit('ajaxCarriersPositions'))
|
||||
{
|
||||
if ($carrier = new Carrier((int)$pos[2]))
|
||||
if (isset($position) && $carrier->updatePosition($way, $position))
|
||||
echo "ok position $position for carrier $pos[1]\r\n";
|
||||
echo "ok position ".(int)$position." for carrier ".(int)$pos[1]."\r\n";
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "Can not update carrier '. $id_carrier . ' to position '.$position.' "}';
|
||||
echo '{"hasError" : true, "errors" : "Can not update carrier '. (int)$id_carrier . ' to position '.(int)$position.' "}';
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "This carrier ('.$id_carrier.') can t be loaded"}';
|
||||
echo '{"hasError" : true, "errors" : "This carrier ('.(int)$id_carrier.') can t be loaded"}';
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -996,3 +1002,15 @@ if (Tools::isSubmit('ajaxUpdateTaxRule'))
|
||||
die(Tools::jsonEncode($output));
|
||||
}
|
||||
|
||||
if (Tools::isSubmit('getZones'))
|
||||
{
|
||||
$zones = Zone::getZones();
|
||||
$html = '<select id="zone_to_affect" name="zone_to_affect">';
|
||||
foreach ($zones as $z)
|
||||
{
|
||||
$html .= '<option value="'.$z['id_zone'].'">'.$z['name'].'</option>';
|
||||
}
|
||||
$html .= '</select>';
|
||||
$array = array('hasError' => false, 'errors' => '', 'data' => $html);
|
||||
die(Tools::jsonEncode($html));
|
||||
}
|
||||
|
||||
@@ -34,10 +34,10 @@ if(!isset($_GET['iso_lang']) OR empty($_GET['iso_lang']))
|
||||
die('fail:0');
|
||||
if(!isset($_GET['ps_version']) OR empty($_GET['ps_version']))
|
||||
die('fail:0');
|
||||
if(@fsockopen('www.prestashop.com', 80))
|
||||
if(@fsockopen('api.prestashop.com', 80))
|
||||
{
|
||||
// Get all iso code available
|
||||
$lang_packs = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='.(string)$_GET['ps_version'].'&iso_lang='.(string)$_GET['iso_lang']);
|
||||
$lang_packs = Tools::file_get_contents('http://api.prestashop.com/download/lang_packs/get_language_pack.php?version='.(string)$_GET['ps_version'].'&iso_lang='.(string)$_GET['iso_lang']);
|
||||
|
||||
if ($lang_packs !== '' && Tools::jsonDecode($lang_packs) !== NULL)
|
||||
{
|
||||
|
||||
@@ -1017,7 +1017,7 @@ function getRootPath() {
|
||||
|
||||
|
||||
|
||||
// START ANDR<EFBFBD> SILVA DOWNLOAD CODE
|
||||
// START ANDRE SILVA DOWNLOAD CODE
|
||||
// required for IE, otherwise Content-disposition is ignored
|
||||
if(ini_get('zlib.output_compression'))
|
||||
ini_set('zlib.output_compression', 'Off');
|
||||
@@ -1033,7 +1033,7 @@ function getRootPath() {
|
||||
|
||||
readfile($path);
|
||||
exit();
|
||||
// END ANDR<EFBFBD> SILVA DOWNLOAD CODE
|
||||
// END ANDRE SILVA DOWNLOAD CODE
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
85
admin-dev/csv.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @since 1.5.0
|
||||
*/
|
||||
|
||||
define('_PS_ADMIN_DIR_', getcwd());
|
||||
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
||||
|
||||
if (!Context::getContext()->employee->id)
|
||||
Tools::redirectAdmin('index.php?controller=AdminLogin');
|
||||
|
||||
/*
|
||||
* Functions allowed
|
||||
*/
|
||||
$functions = array(
|
||||
'id_supply_order' => 'exportSupplyOrder',
|
||||
);
|
||||
|
||||
/*
|
||||
* Depending on $_GET, call the corresponding function
|
||||
*/
|
||||
foreach ($functions as $var => $function)
|
||||
{
|
||||
if (isset($_GET[$var]))
|
||||
{
|
||||
call_user_func($function);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function used for SupplyOrder
|
||||
*/
|
||||
function exportSupplyOrder()
|
||||
{
|
||||
//@TODO Checks if employee has enough access to export
|
||||
if (!isset($_GET['id_supply_order']))
|
||||
die (Tools::displayError('Missing supply order ID'));
|
||||
|
||||
$id_supply_order = (int)$_GET['id_supply_order'];
|
||||
$supply_order = new SupplyOrder($id_supply_order);
|
||||
|
||||
if (!Validate::isLoadedObject($supply_order))
|
||||
die(Tools::displayError('Cannot find this supply order in the database'));
|
||||
|
||||
$details = $supply_order->getEntriesCollection($supply_order->id_lang);
|
||||
exportCSV($details, 'supply_order_'.$supply_order->reference.'_details');
|
||||
}
|
||||
|
||||
/**
|
||||
* Main function to export CSV
|
||||
* @param object|Array $object
|
||||
* @param string $template
|
||||
*/
|
||||
function exportCSV(&$object, $filename)
|
||||
{
|
||||
$csv = new CSV($object, $filename);
|
||||
$csv->export();
|
||||
}
|
||||
@@ -65,73 +65,81 @@ echo '
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function getPush()
|
||||
{
|
||||
$.post("ajax.php",{"getNotifications" : "1"}, function(data) {
|
||||
if (data)
|
||||
{
|
||||
json = jQuery.parseJSON(data);
|
||||
{
|
||||
|
||||
// Add orders notifications to the list
|
||||
html = "";
|
||||
nb_notifs = 0;
|
||||
$.each(json.order, function(property, value) {
|
||||
html += "<li>'.translate('A new order has been made on your shop.').'<br />'.translate('Order number : ').'<strong>#" + parseInt(value.id_order) + "</strong><br />'.translate('Total : ').'<strong>" + value.total_paid_real + "</strong><br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?controller=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.translate('Click here to see that order').'</a></li>";
|
||||
});
|
||||
if (html != "")
|
||||
$.post("ajax.php",{"getNotifications" : "1"}, function(data) {
|
||||
if (data)
|
||||
{
|
||||
$("#list_orders_notif").prev("p").hide();
|
||||
$("#list_orders_notif").empty().append(html);
|
||||
nb_notifs = $("#list_orders_notif li").length;
|
||||
$("#orders_notif_value").text(nb_notifs);
|
||||
$("#orders_notif_number_wrapper").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#orders_notif_number_wrapper").hide();
|
||||
}
|
||||
|
||||
// Add customers notifications to the list
|
||||
html = "";
|
||||
nb_notifs = 0;
|
||||
$.each(json.customer, function(property, value) {
|
||||
html += "<li>'.translate('A new customer registered on your shop.').'<br />'.translate('Customer name : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?controller=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'&viewcustomer&id_customer=" + parseInt(value.id_customer) + "\">'.translate('Click here to see that customer').'</a></li>";
|
||||
});
|
||||
if (html != "")
|
||||
{
|
||||
$("#list_customers_notif").prev("p").hide();
|
||||
$("#list_customers_notif").empty().append(html);
|
||||
nb_notifs = $("#list_customers_notif li").length;
|
||||
$("#customers_notif_value").text(nb_notifs);
|
||||
$("#customers_notif_number_wrapper").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#customers_notif_number_wrapper").hide();
|
||||
}
|
||||
json = jQuery.parseJSON(data);
|
||||
|
||||
// Add messages notifications to the list
|
||||
html = "";
|
||||
nb_notifs = 0;
|
||||
$.each(json.message, function(property, value) {
|
||||
html += "<li>'.translate('A new message posted on your shop.').'<br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br />'.translate('Excerpt : ').'<strong>" + value.message_customer + "</strong><br /><a href=\"index.php?controller=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.translate('Click here to see that message').'</a></li>";
|
||||
});
|
||||
if (html != "")
|
||||
{
|
||||
$("#list_messages_notif").prev("p").hide();
|
||||
$("#list_messages_notif").empty().append(html);
|
||||
nb_notifs = $("#list_messages_notif li").length;
|
||||
$("#messages_notif_value").text(nb_notifs);
|
||||
$("#messages_notif_number_wrapper").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#messages_notif_number_wrapper").hide();
|
||||
}
|
||||
// Add orders notifications to the list
|
||||
html = "";
|
||||
nb_notifs = 0;
|
||||
$.each(json.order, function(property, value) {
|
||||
html += "<li>'.translate('A new order has been made on your shop.').'<br />'.translate('Order number : ').'<strong>#" + parseInt(value.id_order) + "</strong><br />'.translate('Total : ').'<strong>" + value.total_paid_real + "</strong><br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.translate('Click here to see that order').'</a></li>";
|
||||
});
|
||||
|
||||
}
|
||||
setTimeout("getPush()",60000);
|
||||
});
|
||||
}
|
||||
if (html != "")
|
||||
{
|
||||
|
||||
$("#list_orders_notif").prev("p").hide();
|
||||
$("#list_orders_notif").empty().append(html);
|
||||
nb_notifs = $("#list_orders_notif li").length;
|
||||
$("#orders_notif_value").text(nb_notifs);
|
||||
$("#orders_notif_number_wrapper").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#orders_notif_number_wrapper").hide();
|
||||
}
|
||||
|
||||
// Add customers notifications to the list
|
||||
html = "";
|
||||
nb_notifs = 0;
|
||||
$.each(json.customer, function(property, value) {
|
||||
html += "<li>'.translate('A new customer registered on your shop.').'<br />'.translate('Customer name : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'&viewcustomer&id_customer=" + parseInt(value.id_customer) + "\">'.translate('Click here to see that customer').'</a></li>";
|
||||
});
|
||||
if (html != "")
|
||||
{
|
||||
$("#list_customers_notif").prev("p").hide();
|
||||
$("#list_customers_notif").empty().append(html);
|
||||
nb_notifs = $("#list_customers_notif li").length;
|
||||
$("#customers_notif_value").text(nb_notifs);
|
||||
$("#customers_notif_number_wrapper").show();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
|
||||
$("#customers_notif_number_wrapper").hide();
|
||||
}
|
||||
|
||||
|
||||
// Add messages notifications to the list
|
||||
html = "";
|
||||
nb_notifs = 0;
|
||||
$.each(json.customer_message, function(property, value) {
|
||||
html += "<li>'.translate('A new message posted on your shop.').'<br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'&viewcustomer_thread&id_customer_thread=" + parseInt(value.id_customer_thread) + "\">'.translate('Click here to see that message').'</a></li>";
|
||||
});
|
||||
|
||||
if (html != "")
|
||||
{
|
||||
|
||||
$("#list_customer_messages_notif").prev("p").hide();
|
||||
$("#list_customer_messages_notif").empty().append(html);
|
||||
nb_notifs = $("#list_customer_messages_notif li").length;
|
||||
$("#customer_messages_notif_value").text(nb_notifs);
|
||||
$("#customer_messages_notif_number_wrapper").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#customer_messages_notif_number_wrapper").hide();
|
||||
}
|
||||
}
|
||||
setTimeout("getPush()",60000);
|
||||
});
|
||||
}
|
||||
|
||||
$().ready(function()
|
||||
{
|
||||
@@ -193,7 +201,7 @@ echo ' var html = "";
|
||||
<h3>'.translate('Last orders').'</h3>
|
||||
<p class="no_notifs">'.translate('No new orders has been made on your shop').'</p>
|
||||
<ul id="list_orders_notif"></ul>
|
||||
<p><a href="index.php?controller=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'">'.translate('Show all orders').'</a></p>
|
||||
<p><a href="index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'">'.translate('Show all orders').'</a></p>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
@@ -204,23 +212,23 @@ echo ' var html = "";
|
||||
<h3>'.translate('Last customers').'</h3>
|
||||
<p class="no_notifs">'.translate('No new customers registered on your shop').'</p>
|
||||
<ul id="list_customers_notif"></ul>
|
||||
<p><a href="index.php?controller=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'">'.translate('Show all customers').'</a></p>
|
||||
<p><a href="index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'">'.translate('Show all customers').'</a></p>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
if (Configuration::get('PS_SHOW_NEW_MESSAGES') == 1)
|
||||
{
|
||||
echo '<div id="messages_notif" class="notifs"><span id="messages_notif_number_wrapper" class="number_wrapper"><span id="messages_notif_value">0</span></span>
|
||||
<div id="messages_notif_wrapper" class="notifs_wrapper">
|
||||
echo '<div id="customer_messages_notif" class="notifs"><span id="customer_messages_notif_number_wrapper" class="number_wrapper"><span id="customer_messages_notif_value">0</span></span>
|
||||
<div id="customer_messages_notif_wrapper" class="notifs_wrapper">
|
||||
<h3>'.translate('Last messages').'</h3>
|
||||
<p class="no_notifs">'.translate('No new messages posted on your shop').'</p>
|
||||
<ul id="list_messages_notif"></ul>
|
||||
<p><a href="index.php?controller=AdminMessages&token='.Tools::getAdminTokenLite('AdminMessages').'">'.translate('Show all messages').'</a></p>
|
||||
<ul id="list_customer_messages_notif"></ul>
|
||||
<p><a href="index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'">'.translate('Show all messages').'</a></p>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
echo '</div><span id="employee_links">
|
||||
<a href="index.php?controller=AdminEmployees&id_employee='.(int)Context::getContext()->employee->id.'&updateemployee&token='.Tools::getAdminTokenLite('AdminEmployees').'" class="employee" alt="">'.translate('My preferences').'</a>
|
||||
<a href="index.php?controller=AdminEmployees&id_employee='.(int)Context::getContext()->employee->id.'&updateemployee&token='.Tools::getAdminTokenLite('AdminEmployees').'" class="employee">'.translate('My preferences').'</a>
|
||||
<span class="separator"></span>
|
||||
<span class="employee_name">
|
||||
'.Tools::substr(Context::getContext()->employee->firstname, 0, 1).'. '.htmlentities(Context::getContext()->employee->lastname, ENT_COMPAT, 'UTF-8').'
|
||||
@@ -289,7 +297,7 @@ $echoLis = '';
|
||||
$mainsubtablist = '';
|
||||
|
||||
foreach ($tabs AS $t)
|
||||
if (checkTabRights($t['id_tab']) === true)
|
||||
if (checkTabRights($t['id_tab']) === true AND (bool)$t['active'])
|
||||
{
|
||||
$img = (Tools::file_exists_cache(_PS_ADMIN_DIR_.'/themes/'.Context::getContext()->employee->bo_theme.'/img/t/'.$t['class_name'].'.gif') ? 'themes/'.Context::getContext()->employee->bo_theme.'/img/' : _PS_IMG_).'t/'.$t['class_name'].'.gif';
|
||||
if (trim($t['module']) != '')
|
||||
@@ -308,13 +316,13 @@ foreach ($tabs AS $t)
|
||||
array_unshift($subTabs, $t);
|
||||
|
||||
foreach ($subTabs AS $t2)
|
||||
if (checkTabRights($t2['id_tab']) === true)
|
||||
if (checkTabRights($t2['id_tab']) === true AND (bool)$t2['active'])
|
||||
echo '<li><a href="index.php?controller='.$t2['class_name'].'&token='.Tools::getAdminTokenLite($t2['class_name']).'">'.$t2['name'].'</a></li>';
|
||||
|
||||
echo '</ul></li>';
|
||||
$echoLi = '';
|
||||
foreach ($subTabs AS $t2)
|
||||
if (checkTabRights($t2['id_tab']) === true)
|
||||
if (checkTabRights($t2['id_tab']) === true AND (bool)$t2['active'])
|
||||
$echoLi .= '<li class="subitem"><a href="index.php?controller='.$t2['class_name'].'&token='.Tools::getAdminTokenLite($t2['class_name']).'">'.$t2['name'].'</a></li>';
|
||||
|
||||
if ($current)
|
||||
|
||||
@@ -36,6 +36,7 @@ $functionArray = array(
|
||||
'pdf' => 'generateInvoicePDF',
|
||||
'id_order_slip' => 'generateOrderSlipPDF',
|
||||
'id_delivery' => 'generateDeliverySlipPDF',
|
||||
'delivery' => 'generateDeliverySlipPDF',
|
||||
'invoices' => 'generateInvoicesPDF',
|
||||
'invoices2' => 'generateInvoicesPDF2',
|
||||
'slips' => 'generateOrderSlipsPDF',
|
||||
@@ -66,10 +67,10 @@ function generateSupplyOrderFormPDF()
|
||||
|
||||
function generateInvoicePDF()
|
||||
{
|
||||
if (Tools::isSubmit('id_order'))
|
||||
generateInvoicePDFByIdOrder(Tools::getValue('id_order'));
|
||||
elseif (Tools::isSubmit('id_order_invoice'))
|
||||
generateInvoicePDFByIdOrderInvoice(Tools::getValue('id_order_invoice'));
|
||||
if (Tools::isSubmit('id_order'))
|
||||
generateInvoicePDFByIdOrder(Tools::getValue('id_order'));
|
||||
elseif (Tools::isSubmit('id_order_invoice'))
|
||||
generateInvoicePDFByIdOrderInvoice(Tools::getValue('id_order_invoice'));
|
||||
else
|
||||
die (Tools::displayError('Missing order ID or invoice order ID'));
|
||||
exit;
|
||||
@@ -81,7 +82,9 @@ function generateInvoicePDFByIdOrder($id_order)
|
||||
if (!Validate::isLoadedObject($order))
|
||||
die(Tools::displayError('Cannot find order in database'));
|
||||
|
||||
generatePDF($order->getInvoicesCollection(), PDF::TEMPLATE_INVOICE);
|
||||
$order_invoice_list = $order->getInvoicesCollection();
|
||||
Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list));
|
||||
generatePDF($order_invoice_list, PDF::TEMPLATE_INVOICE);
|
||||
}
|
||||
|
||||
function generateInvoicePDFByIdOrderInvoice($id_order_invoice)
|
||||
@@ -90,6 +93,7 @@ function generateInvoicePDFByIdOrderInvoice($id_order_invoice)
|
||||
if (!Validate::isLoadedObject($order_invoice))
|
||||
die(Tools::displayError('Cannot find order invoice in database'));
|
||||
|
||||
Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => array($order_invoice)));
|
||||
generatePDF($order_invoice, PDF::TEMPLATE_INVOICE);
|
||||
}
|
||||
|
||||
@@ -107,24 +111,47 @@ function generateOrderSlipPDF()
|
||||
|
||||
function generateDeliverySlipPDF()
|
||||
{
|
||||
$order = Order::getByDelivery((int)($_GET['id_delivery']));
|
||||
if (!Validate::isLoadedObject($order))
|
||||
die(Tools::displayError('Cannot find order in database'));
|
||||
if (Tools::isSubmit('id_order'))
|
||||
generateDeliverySlipPDFByIdOrder(Tools::getValue('id_order'));
|
||||
elseif (Tools::isSubmit('id_order_invoice'))
|
||||
generateDeliverySlipPDFByIdOrderInvoice(Tools::getValue('id_order_invoice'));
|
||||
elseif (Tools::isSubmit('id_delivery'))
|
||||
{
|
||||
$order = Order::getByDelivery(Tools::getValue('id_delivery'));
|
||||
generateDeliverySlipPDFByIdOrder($order->id);
|
||||
}
|
||||
else
|
||||
die (Tools::displayError('Missing order ID or invoice order ID'));
|
||||
exit;
|
||||
}
|
||||
|
||||
generatePDF($order, PDF::TEMPLATE_DELIVERY_SLIP);
|
||||
function generateDeliverySlipPDFByIdOrder($id_order)
|
||||
{
|
||||
$order = new Order($id_order);
|
||||
if (!Validate::isLoadedObject($order))
|
||||
throw new PrestashopException('Can\'t load Order object');
|
||||
|
||||
$order_invoice_collection = $order->getInvoicesCollection();
|
||||
generatePDF($order_invoice_collection, PDF::TEMPLATE_DELIVERY_SLIP);
|
||||
}
|
||||
|
||||
function generateDeliverySlipPDFByIdOrderInvoice($id_order_invoice)
|
||||
{
|
||||
$order_invoice = new OrderInvoice($id_order_invoice);
|
||||
if (!Validate::isLoadedObject($order_invoice))
|
||||
throw new PrestashopException('Can\'t load Order Invoice object');
|
||||
|
||||
generatePDF($order_invoice, PDF::TEMPLATE_DELIVERY_SLIP);
|
||||
}
|
||||
|
||||
function generateInvoicesPDF()
|
||||
{
|
||||
$id_orders_list = Order::getOrdersIdInvoiceByDate($_GET['date_from'], $_GET['date_to'], NULL, 'invoice');
|
||||
$id_orders_list = OrderInvoice::getByDateInterval($_GET['date_from'], $_GET['date_to'], NULL, 'invoice');
|
||||
|
||||
if (!is_array($id_orders_list))
|
||||
die (Tools::displayError('No invoices found'));
|
||||
|
||||
$orders = array();
|
||||
foreach ($id_orders_list as $id_order)
|
||||
$orders[] = new Order((int)$id_order);
|
||||
|
||||
generatePDF($orders, PDF::TEMPLATE_INVOICE);
|
||||
generateOrderInvoicesPDF($id_orders_list);
|
||||
}
|
||||
|
||||
function generateInvoicesPDF2()
|
||||
@@ -134,11 +161,19 @@ function generateInvoicesPDF2()
|
||||
if (is_array($id_orders = Order::getOrderIdsByStatus((int)$id_order_state)))
|
||||
$id_orders_list = array_merge($id_orders_list, $id_orders);
|
||||
|
||||
$orders = array();
|
||||
foreach ($id_orders_list as $id_order)
|
||||
$orders[] = new Order((int)$id_order);
|
||||
generateOrderInvoicesPDF($id_orders_list);
|
||||
}
|
||||
|
||||
generatePDF($orders, PDF::TEMPLATE_INVOICE);
|
||||
function generateOrderInvoicesPDF($id_orders_list)
|
||||
{
|
||||
$orders_invoices = array();
|
||||
foreach ($id_orders_list as $id_order)
|
||||
{
|
||||
$order = new Order((int)$id_order);
|
||||
$orders_invoices = array_merge($orders_invoices, $order->getInvoicesCollection());
|
||||
}
|
||||
|
||||
generatePDF($orders_invoices, PDF::TEMPLATE_INVOICE);
|
||||
}
|
||||
|
||||
function generateOrderSlipsPDF()
|
||||
@@ -167,5 +202,4 @@ function generatePDF($object, $template)
|
||||
global $smarty;
|
||||
$pdf = new PDF($object, $template, $smarty);
|
||||
$pdf->render();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 7310 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class AdminMessages extends AdminTab
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->table = 'order';
|
||||
$this->className = 'Order';
|
||||
$this->view = 'noActionColumn';
|
||||
$this->colorOnBackground = true;
|
||||
$this->context = Context::getContext();
|
||||
$start = 0;
|
||||
$this->_defaultOrderBy = 'date_add';
|
||||
|
||||
/* Manage default params values */
|
||||
if (empty($limit))
|
||||
$limit = ((!isset($this->context->cookie->{$this->table.'_pagination'})) ? $this->_pagination[0] : $limit = $this->context->cookie->{$this->table.'_pagination'});
|
||||
|
||||
if (!Validate::isTableOrIdentifier($this->table))
|
||||
die (Tools::displayError('Table name is invalid:').' "'.$this->table.'"');
|
||||
|
||||
if (empty($orderBy))
|
||||
$orderBy = Tools::getValue($this->table.'Orderby', $this->_defaultOrderBy);
|
||||
elseif ($orderBy == 'id_order')
|
||||
$orderBy = 'm.id_order';
|
||||
|
||||
if (empty($orderWay))
|
||||
$orderWay = Tools::getValue($this->table.'Orderway', 'ASC');
|
||||
|
||||
$limit = (int)(Tools::getValue('pagination', $limit));
|
||||
$this->context->cookie->{$this->table.'_pagination'} = $limit;
|
||||
|
||||
/* Check params validity */
|
||||
if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay)
|
||||
OR !is_numeric($start) OR !is_numeric($limit))
|
||||
die(Tools::displayError('get list params is not valid'));
|
||||
|
||||
if ($orderBy == 'id_order')
|
||||
$orderBy = 'm.id_order';
|
||||
|
||||
/* Determine offset from current page */
|
||||
if ((isset($_POST['submitFilter'.$this->table]) OR
|
||||
isset($_POST['submitFilter'.$this->table.'_x']) OR
|
||||
isset($_POST['submitFilter'.$this->table.'_y'])) AND
|
||||
!empty($_POST['submitFilter'.$this->table]) AND
|
||||
is_numeric($_POST['submitFilter'.$this->table]))
|
||||
$start = (int)($_POST['submitFilter'.$this->table] - 1) * $limit;
|
||||
|
||||
$this->_list = Db::getInstance()->executeS('
|
||||
SELECT SQL_CALC_FOUND_ROWS m.id_message, m.id_cart, m.id_employee, IF(m.id_order > 0, m.id_order, \'--\') id_order, m.message, m.private, m.date_add, CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS customer,
|
||||
c.id_customer, count(m.id_message) nb_messages, (SELECT message FROM '._DB_PREFIX_.'message WHERE id_order = m.id_order ORDER BY date_add DESC LIMIT 1) last_message,
|
||||
(SELECT COUNT(m2.id_message) FROM '._DB_PREFIX_.'message m2 WHERE 1 AND m2.id_customer != 0 AND m2.id_order = m.id_order AND m2.id_message NOT IN
|
||||
(SELECT mr2.id_message FROM '._DB_PREFIX_.'message_readed mr2 WHERE mr2.id_employee = '.(int)$this->context->employee->id.') GROUP BY m2.id_order) nb_messages_not_read_by_me
|
||||
FROM '._DB_PREFIX_.'message m
|
||||
LEFT JOIN '._DB_PREFIX_.'orders o ON (o.id_order = m.id_order)
|
||||
LEFT JOIN '._DB_PREFIX_.'customer c ON (c.id_customer = m.id_customer)
|
||||
GROUP BY m.id_order
|
||||
ORDER BY '.(isset($orderBy) ? pSQL($orderBy) : 'date_add') .' '.(isset($orderWay) ? pSQL($orderWay) : 'DESC').'
|
||||
LIMIT '.(int)($start).','.(int)($limit));
|
||||
$this->_listTotal = Db::getInstance()->getValue('SELECT FOUND_ROWS()');
|
||||
|
||||
$this->fieldsDisplay = array(
|
||||
'id_order' => array('title' => $this->l('Order ID'), 'align' => 'center', 'width' => 30),
|
||||
'id_customer' => array('title' => $this->l('Customer ID'), 'align' => 'center', 'width' => 30),
|
||||
'customer' => array('title' => $this->l('Customer'), 'width' => 100, 'filter_key' => 'customer', 'tmpTableFilter' => true),
|
||||
'last_message' => array('title' => $this->l('Last message'), 'width' => 400, 'orderby' => false),
|
||||
'nb_messages_not_read_by_me' => array('title' => $this->l('Unread message(s)'), 'width' =>30, 'align' => 'center'),
|
||||
'nb_messages' => array('title' => $this->l('Number of messages'), 'width' => 30, 'align' => 'center'));
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function display()
|
||||
{
|
||||
if (isset($_GET['ajax']) && !empty($_GET['id_cart']))
|
||||
{
|
||||
ob_clean();
|
||||
|
||||
$messages = Message::getMessagesByCartId(Tools::getValue('id_cart'), true);
|
||||
|
||||
echo '
|
||||
<style type="text/css">
|
||||
* {
|
||||
font-size: 12px;
|
||||
font-family: Arial,Verdana,Helvetica,sans-serif;
|
||||
}
|
||||
</style>
|
||||
<p style="color: #CC0000; font-weight: bold;">'.$this->l('This customer has not finalized their order, however here are their messages:').'</p>';
|
||||
|
||||
foreach ($messages AS $message)
|
||||
{
|
||||
echo '
|
||||
<table cellpadding="5" border="1">
|
||||
<tr>
|
||||
<td>'.$this->l('Cart ID:').'</td>
|
||||
<td>'.(int)$message['id_cart'].'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$this->l('Customer ID:').'</td>
|
||||
<td>'.(int)$message['id_customer'].'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$this->l('Date:').'</td>
|
||||
<td>'.Tools::displayDate($message['date_add'], $this->context->language->id, true).'</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>'.$this->l('Message:').' '.Tools::htmlentitiesUTF8($message['message']).'</p>
|
||||
<hr size="1" noshade style="margin-bottom: 15px;" />';
|
||||
}
|
||||
|
||||
die;
|
||||
}
|
||||
elseif (isset($_GET['view'.$this->table]) AND !empty($_GET['id_order']) AND $_GET['id_order'] != '--')
|
||||
Tools::redirectAdmin('index.php?tab=AdminOrders&id_order='.(int)($_GET['id_order']).'&vieworder'.'&token='.Tools::getAdminToken('AdminOrders'.(int)(Tab::getIdFromClassName('AdminOrders')).(int)$this->context->employee->id));
|
||||
else
|
||||
{
|
||||
if (isset($_GET['id_order']) AND (empty($_GET['id_order']) OR $_GET['id_order'] == '--'))
|
||||
{
|
||||
echo '<p class="warning bold"><img src="../img/admin/warning.gif" alt="" class="middle" /> '.
|
||||
Tools::displayError('Cannot display this message because the customer has not finalized their order.').'</p>';
|
||||
}
|
||||
|
||||
foreach ($this->_list AS $k => &$item)
|
||||
if (Tools::strlen($item['last_message']) > 150 + Tools::strlen('...'))
|
||||
$this->_list[$k]['last_message'] = Tools::substr(html_entity_decode($item['last_message'], ENT_QUOTES, 'UTF-8'), 0, 150, 'UTF-8').'...';
|
||||
|
||||
foreach ($this->_list AS $k => &$item)
|
||||
if ($item['id_order'] == '--')
|
||||
$this->_list[$k]['last_message'] .= ' <a class="iframe" onclick="$(this).parent().attr(\'onclick\', \'return false\');" href="'.self::$currentIndex.'&token='.Tools::getAdminToken('AdminMessages'.(int)(Tab::getIdFromClassName('AdminMessages')).(int)$this->context->employee->id).'&ajax=1&id_cart='.(int)$this->_list[$k]['id_cart'].'" title="'.$this->l('View details').'"><img src="../img/admin/details.gif" alt="'.$this->l('View details').'" /></a>';
|
||||
|
||||
echo '
|
||||
<link href="'._PS_CSS_DIR_.'jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
<script type="text/javascript" src="'._PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$(\'a.iframe\').fancybox();
|
||||
});
|
||||
</script>';
|
||||
|
||||
$this->displayList();
|
||||
$this->displayOptionsList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,13 +10,15 @@ h6 { font-size:1em; }
|
||||
|
||||
/*LIST*/
|
||||
ul,ol {list-style:none; margin: 0; padding: 0;}
|
||||
ul li {color:#585A69;}
|
||||
|
||||
/*FORM*/
|
||||
label {color:#585a69;text-shadow:0 1px 0#fff;}
|
||||
fieldset{background-color:#EBEDF4; border:1px solid #CCCED7;font-size:1.1em;margin:0;padding:1em}
|
||||
.Bloc {background-color:#EBEDF4; border:1px solid #CCCED7;font-size:1.1em;margin:0;padding:1em}
|
||||
legend{background:#EBEDF4;border:1px solid #CCCED7;font-weight:700;margin:0;padding:.2em .5em;text-align:left}
|
||||
input[type="text"],input[type="password"],input[type="file"],textarea {border:1px solid #ccc;}
|
||||
select { border:1px solid #ccc;}
|
||||
select { border:1px solid #ccc; color: #666666; font-size: 12px; height: 22px;}
|
||||
select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disabled"] {border: 1px solid #CCCCCC;color: #AAAAAA}
|
||||
.header_module{background:url(header_module.png);padding-left: 0.5em;padding-top: 0.8em;height:20px;color: #812143;border:solid 1px #CCC;}
|
||||
.double_select select{width:300px;height:160px;}
|
||||
@@ -25,11 +27,15 @@ select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disab
|
||||
/*BUTTON*/
|
||||
.button{background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent;
|
||||
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#E3E3E3)) repeat scroll 0 0 transparent;
|
||||
border-color: #CCCCCC #BBBBBB #A0A0A0;border-left: 1px solid #BBBBBB;border-radius: 3px 3px 3px 3px;border-right: 1px solid #BBBBBB;border-style: solid;border-width: 1px;color: #000000;margin: 0; outline: medium none;padding: 3px 8px;text-align: center;vertical-align: middle;white-space: nowrap;}
|
||||
border-color: #CCCCCC #BBBBBB #A0A0A0;border-left: 1px solid #BBBBBB;border-radius: 3px 3px 3px 3px;border-right: 1px solid #BBBBBB;border-style: solid;border-width: 1px;color: #000000;margin: 0; outline: medium none;padding: 3px 8px;text-align: center;vertical-align: middle;white-space: nowrap; text-shadow:0 1px 0 #fff;}
|
||||
.button[disabled=disabled]{color:#8C8C8C}
|
||||
.button.bt-icon { display:inline-block; margin-bottom:7px;}
|
||||
.button.bt-icon span {padding-left:5px;}
|
||||
input.button[disabled=disabled]:hover{background-color:#FFF6D3}
|
||||
.button:hover{border:1px solid #939393;}
|
||||
.button:active{border:1px solid #939393;}
|
||||
.button.export-csv span{ background: transparent url(export-csv.png) no-repeat scroll left top; padding:1px 0 1px 20px}
|
||||
|
||||
|
||||
#top_container{margin:0;padding:0}
|
||||
|
||||
@@ -47,17 +53,12 @@ input.button[disabled=disabled]:hover{background-color:#FFF6D3}
|
||||
#header #header_infos #header_logout a span {color:#fff;}
|
||||
#header #header_infos #header_foaccess{ text-decoration:none; color:#fff;}
|
||||
#header #header_infos #header_foaccess a {color:#fff !important;}
|
||||
#header #header_search{ float:left; margin-top:15px; }
|
||||
#header #header_search #bo_query{float:left;background: none repeat scroll 0 0 #fff; border-color: #666666 #CCCCCC #CCCCCC;
|
||||
border-style:solid dotted solid solid;
|
||||
border-width: 1px; color: #333; font: 13px Arial,sans-serif; padding: 4px 1px 4px 4px; width: 180px;
|
||||
box-shadow: 0 1px 0 #444444;}
|
||||
#header #header_search #bo_search_type{float:left; margin:0; padding:3px 0 4px; vertical-align:middle;width:auto; border-color: #666666 #CCCCCC #CCCCCC;
|
||||
border-style:solid solid solid none; height:25px;
|
||||
border-width: 1px;}
|
||||
#header #header_search #bo_search_submit { border-color: #CCCCCC #BBBBBB; float:left; font-weight:normal; margin:0; padding: 4px 8px 3px; cursor:pointer; text-shadow: 0 1px 0 #fff; border-bottom-left-radius: 0; border-left: 0 none; border-top-left-radius: 0; }
|
||||
#header #header_search{ float:left; margin-top:15px; position:relative; }
|
||||
#header #header_search #bo_query{ font: 13px Arial,sans-serif; float:left;background: none repeat scroll 0 0 #fff; border:1px solid #000; border-radius:4px; padding: 5px 25px 5px 4px; width: 180px; box-shadow: 0 1px 0 #666;}
|
||||
#header #header_search #bo_search_type{ font-size:13px; float:left; margin:0 10px 0 0; padding:3px 0 4px; vertical-align:middle;width:auto; border-color: #666666 #CCCCCC #CCCCCC;border-style:solid solid solid none; height:27px; border-width: 1px;}
|
||||
#header #header_search #bo_search_submit { background: transparent url(icon-search.png) no-repeat scroll center; border:none; width:27px; height:27px; float:left; font-weight:normal; margin:0; padding:0; cursor:pointer; text-indent:-9999em; position:absolute; right:0;}
|
||||
#header #header_quick{float:right; display:block; margin-top:15px;}
|
||||
#header #header_quick #quick_select{margin:0; padding:3px 0 4px; vertical-align:middle;width:140px; height:25px;}
|
||||
#header #header_quick #quick_select{ font-size:13px; margin:0 10px 0 0; padding:3px 0 4px; vertical-align:middle;width:140px; height:27px;}
|
||||
#header #header_shoplist{ background-image:none; clear:both; float: right; color:#fff; margin-top:10px; margin-right:15px;}
|
||||
#header #header_shoplist span { float:left; padding:3px;}
|
||||
#header #header_myaccount{background:url(bg-lang.png) no-repeat;display:block;float:right;height:16px;margin:8px 1px 0 0;width:16px}
|
||||
@@ -68,10 +69,10 @@ input.button[disabled=disabled]:hover{background-color:#FFF6D3}
|
||||
.notifs { float: left;position: relative;cursor: pointer;margin:0; padding:5px; width: 18px;height: 16px;}
|
||||
#orders_notif {background: url("notif_order.png") no-repeat center top;}
|
||||
#customers_notif {background: url("notif_customer.png") no-repeat center top;}
|
||||
#messages_notif {background: url("notif_message.png") no-repeat center top;}
|
||||
#customer_messages_notif {background: url("notif_message.png") no-repeat center top;}
|
||||
#orders_notif.open_notifs,
|
||||
#customers_notif.open_notifs,
|
||||
#messages_notif.open_notifs { background-color: #FFFFFF;border: 1px solid #000000; position: relative; display: block; background-position:center bottom; }
|
||||
#customer_messages_notif.open_notifs { background-color: #FFFFFF;border: 1px solid #000000; position: relative; display: block; background-position:center bottom; }
|
||||
|
||||
|
||||
.number_wrapper {color: white;display: none;font-size: 13px;font-weight: bold;position: absolute; right: -8px;top: -10px;z-index: 101;padding: 2px 5px;}
|
||||
@@ -114,8 +115,13 @@ input.button[disabled=disabled]:hover{background-color:#FFF6D3}
|
||||
.table a:hover{text-decoration:none}
|
||||
.table tr th{ background-color: #F1F1F1; text-shadow:0 1px 0 #fff; padding:4px 6px;
|
||||
background-image: -moz-linear-gradient(center top , #F9F9F9, #ECECEC);
|
||||
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#ECECEC)) repeat scroll 0 0 transparent;}
|
||||
.table tr td{border-bottom:1px solid #ccc;color:#333;font-size:11px;padding: 2px 4px 2px 6px}
|
||||
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#ECECEC)) repeat scroll 0 0 transparent;
|
||||
font-size:13px; text-align:left;}
|
||||
.table tr th.right { text-align:center;}
|
||||
.table tr td{border-bottom:1px solid #ccc;color:#333;font-size:12px;padding: 4px 4px 4px 6px;}
|
||||
.table tr:hover td{background:#fff1b5}
|
||||
.table tr.filter:hover td{background:#F1F9FF}
|
||||
.table tr td:hover table tr td{background:none}
|
||||
.table tr.action_details td{background:#FAFAFA;}
|
||||
.table tr.alt_row.action_details td{background:#E8E8E8;}
|
||||
.table tr td.empty{border-bottom:none;background:white!important}
|
||||
@@ -124,6 +130,7 @@ input.button[disabled=disabled]:hover{background-color:#FFF6D3}
|
||||
.table tr.small td{height:15px}
|
||||
.table tr.last td{border-bottom:none}
|
||||
td.col-left {vertical-align:top; padding-right:10px;}
|
||||
#tabPane1 td.col-left { width:200px;}
|
||||
td.col-left label { display:block; width:100%; text-align:right;}
|
||||
.alt_row{background-color:#f8f8f8}
|
||||
.path_bar{background-color:#E2EBEE;border:1px solid #999999;font-family:Trebuchet,Arial,Helvetica,sans-serif;font-size:13px;margin-bottom:20px;padding:5px}
|
||||
@@ -143,25 +150,32 @@ a.module_toggle_all{color: #268CCD;}
|
||||
.button-autoupgrade {-moz-border-bottom-colors: none;-moz-border-image: none;-moz-border-left-colors: none;-moz-border-right-colors: none;-moz-border-top-colors: none;border-color: #FFF6D3 #DFD5AF #DFD5AF #FFF6D3;border-right: 1px solid #DFD5AF;border-style: solid;border-width: 1px;color: #268CCD;font-size: medium;padding: 5px;}
|
||||
.processing {overflow: auto;}
|
||||
|
||||
/*UI ACCORDEON*/
|
||||
.ui-accordion-header { background-color: #ccc; color:#000;}
|
||||
|
||||
/*BLOC*/
|
||||
.Bloc { background: none repeat scroll 0 0 #EBEDF4;}
|
||||
|
||||
|
||||
/*TABLE STATUS COMMANDE*/
|
||||
.table td span.color_field { font-size:11px; padding:2px 5px; border-radius:3px; text-transform:uppercase; color:#fff; border-radius:3px; -moz-border-radius:3px; -webkit-border-radius:3px;}
|
||||
|
||||
/*toolbarBox*/
|
||||
.toolbarBox { background-color: #F8F8F8; border: 1px solid #CCCCCC; margin-bottom:10px; padding: 10px 0; border-radius:3px; -moz-border-radius:3px; -webkit-border-radius:3px;}
|
||||
.toolbarBox .pageTitle { margin-left:10px; line-height:48px}
|
||||
.toolbarBox .pageTitle h3 {font-size: 2em; font-weight: normal; line-height: 48px; margin: 0; padding: 0;}
|
||||
.toolbarBox ul.cc_button {float:right;margin:0;padding:0;}
|
||||
.toolbarBox .pageTitle h3 {font-size: 2em; font-weight: normal; line-height: 52px; margin: 0; padding: 0;}
|
||||
.toolbarBox ul.cc_button {float:right;margin:0 5px 0 0;padding:0;}
|
||||
.toolbarBox ul.cc_button li {color: #666666; float: left; height: 48px; list-style: none outside none; padding: 1px 1px 3px 4px; text-align: center;}
|
||||
.toolbarBox a.toolbar_btn { border-width: 1px;font-size:11px;cursor: pointer; display: block; float: left; padding: 1px 5px; white-space: nowrap; text-shadow: 0 1px 0 #ffffff;;}
|
||||
.toolbarBox a.toolbar_btn:hover {}
|
||||
.toolbarBox .toolbar_btn span{ display: block;float: none;height: 32px;margin: 0 auto;width: 32px;}
|
||||
.toolbarBox a.toolbar_btn { border:1px solid #f8f8f8; min-width:50px; border-width: 1px; font-size:11px;cursor: pointer; display: block; float: left; padding: 3px 5px; white-space: nowrap; text-shadow: 0 1px 0 #ffffff;}
|
||||
.toolbarBox a.toolbar_btn:hover { background-color:#fff; border:1px inset #ccc; border-radius:3px;}
|
||||
.toolbarBox .toolbar_btn span{ display: block;float: none;height: 32px;margin: 0 auto;width: 32px; /*hacking ie7*/ margin:0 !ie; position:relative !ie;}
|
||||
.toolbarBox .process-icon-delete { background-image: url(process-icon-delete.png);}
|
||||
.toolbarBox .process-icon-duplicate { background-image: url(process-icon-duplicate.png);}
|
||||
.toolbarBox .process-icon-preview { background-image: url(process-icon-preview.png);}
|
||||
.toolbarBox .process-icon-stats { background-image: url(process-icon-stats.png);}
|
||||
.toolbarBox .process-icon-cancel { background-image: url(process-icon-cancel.png);}
|
||||
.toolbarBox .process-icon-new, .toolbarBox .process-icon-newAttributes{ background-image: url(process-icon-new.png);}
|
||||
.toolbarBox .process-icon-save, .toolbarBox .process-icon-save-settings { background-image: url(process-icon-save.png);}
|
||||
.toolbarBox .process-icon-cancel, .toolbarBox .toolbar-cancel { background-image: url(process-icon-cancel.png);}
|
||||
.toolbarBox .process-icon-new, .toolbarBox .toolbar-new{ background-image: url(process-icon-new.png);}
|
||||
.toolbarBox .process-icon-save { background-image: url(process-icon-save.png);}
|
||||
.toolbarBox .process-icon-save-and-stay { background-image: url(process-icon-save-and-stay.png);}
|
||||
.toolbarBox .process-icon-edit { background-image: url(process-icon-edit.png);}
|
||||
.toolbarBox .process-icon-back { background-image: url(process-icon-back.png);}
|
||||
@@ -169,8 +183,15 @@ a.module_toggle_all{color: #268CCD;}
|
||||
.toolbarBox .process-icon-refresh-cache { background-image: url(process-icon-refresh-cache.png);}
|
||||
.toolbarBox .process-icon-save-calendar { background-image: url(process-icon-save-calendar.png);}
|
||||
.toolbarBox .process-icon-new-module { background-image: url(process-icon-new-module.png);}
|
||||
.toolbarBox .process-icon-new-url { background-image: url(process-icon-new-url.png);}
|
||||
.toolbarBox .process-icon-new-module-addon { background-image: url(process-icon-new-module-addon.png);}
|
||||
.toolbarBox .process-icon-save-and-preview { background-image: url(process-icon-preview.png);}
|
||||
.toolbarBox .process-icon-export-stock-state-quantities-csv { background-image: url(process-icon-export-csv.png);}
|
||||
.toolbarBox .process-icon-export-stock-state-prices-csv { background-image: url(process-icon-export-csv-details.png);}
|
||||
.toolbarBox .process-icon-export-csv-orders { background-image: url(process-icon-export-csv.png);}
|
||||
.toolbarBox .process-icon-export-csv-details { background-image: url(process-icon-export-csv-details.png);}
|
||||
.toolbarBox .process-icon-export-stock-mvt-csv { background-image: url(process-icon-export-csv.png);}
|
||||
.toolbarBox .process-icon-newAttributes, .toolbarBox .toolbar-new{ background-image: url(process-icon-new.png);}
|
||||
|
||||
div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:1;}
|
||||
|
||||
@@ -186,8 +207,9 @@ div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0
|
||||
#productBox { position:relative; width:100%; float:left;}
|
||||
|
||||
/*tab-pane*/
|
||||
form#product_form, form#access_form, form#cart_rule_form { background-color:#ebedf4; border:1px solid #ccced7; min-height:300px; padding: 5px 10px 10px; margin-left:140px;}
|
||||
/*form.defaultForm{ background-color:#ebedf4; border:1px solid #ccced7; min-height:300px; padding: 5px 10px 10px;}*/
|
||||
form#product_form, form#access_form, form#cart_rule_form { background-color:#ebedf4; border:1px solid #ccced7; min-height:404px; padding: 5px 10px 10px; margin-left:140px;}
|
||||
#content form.adminstockmanagement {margin-left:0px;}
|
||||
form#product_form h4 { font-size:18px; font-weight:normal;}
|
||||
.tab-row {}
|
||||
.tab-row .tab {background:#EFEFEF;width:100px;}
|
||||
.tab-row .tab-page.selected {}
|
||||
@@ -201,6 +223,9 @@ form#product_form, form#access_form, form#cart_rule_form { background-color:#e
|
||||
.product-tab-content h4.tab { display:none;}
|
||||
|
||||
|
||||
#categories-treeview { }
|
||||
#product-tab-content-3-Associations .Association td.col-left { width:200px;}
|
||||
|
||||
/*FILTER MODULE*/
|
||||
.filter-module { background-color:#ebedf4; border:1px solid #c2c4d9; margin-top:10px; padding:10px; display:block; min-height:25px;}
|
||||
.filter-module #filternameForm {float:left; margin-right:30px;}
|
||||
@@ -210,11 +235,16 @@ form#product_form, form#access_form, form#cart_rule_form { background-color:#e
|
||||
|
||||
/*FILTER STOCK*/
|
||||
.filter-stock { background-color:#ebedf4; border:1px solid #c2c4d9; margin-bottom:15px; padding:10px; display:block; min-height:25px;}
|
||||
.filter-stock #stock_cover {float:left; margin-right:30px;}
|
||||
.filter-stock #stock_instant_state {float:left; margin-right:30px;}
|
||||
.filter-stock label {width:auto;}
|
||||
.filter-stock .select-filter { float:left;}
|
||||
.filter-stock .button-filter { float:right;}
|
||||
.filter-stock-extended { background-color:#ebedf4; border:1px solid #c2c4d9; margin-bottom:15px; padding:10px; display:block; min-height:65px;}
|
||||
.filter-stock-extended #stock_cover {float:left; margin-right:30px;}
|
||||
.filter-stock-extended #supply_orders {float:left; margin-right:30px;}
|
||||
.filter-stock-extended label {width:auto;}
|
||||
.filter-stock-extended .select-filter { float:left;}
|
||||
.filter-stock-extended .button-filter { float:right;}
|
||||
|
||||
/*ADDONS LOGIN*/
|
||||
#addons_login_div { background: #EBEDF4 url(lock.png) no-repeat scroll left 5px;}
|
||||
@@ -224,19 +254,102 @@ form#product_form, form#access_form, form#cart_rule_form { background-color:#e
|
||||
#addons_login_div input { float:left; margin-right:10px;}
|
||||
#addons_login_div input#addons_login_button { margin-right: 0px; }
|
||||
|
||||
|
||||
/*SIDEBAR*/
|
||||
.sidebar { position:relative; float:left; width:220px; display:inline;}
|
||||
.sidebar h3 { background-color:#ebedf4; font-weight:bold; display:block; padding:5px;}
|
||||
.sidebar.navigation h3 {margin:0;}
|
||||
.sidebar .subHeadline { font-weight:bold; float:right; margin-top:-28px; margin-right:5px;}
|
||||
.sidebar ul.categorieList {}
|
||||
.sidebar ul.categorieList li { border-top:1px solid #ccc; position:relative; line-height:20px;}
|
||||
.sidebar ul.categorieList li:first-child { border-top:none;}
|
||||
.sidebar ul.categorieList li a {color:#3a6ea7;}
|
||||
.sidebar ul.categorieList li a {color:#3a6ea7; padding-left:5px;}
|
||||
.sidebar ul.categorieList li div.categorieWidth { width:180px; margin-left:5px; overflow:hidden;}
|
||||
.sidebar ul.categorieList li div.count{ position:absolute; top:0; right:5px;}
|
||||
.sidebar .categorieStatus { display:none;}
|
||||
|
||||
/*NAVIGATION ENGINE*/
|
||||
.blocEngine { background-color:#eee;}
|
||||
.blocEngine .rowForm { display: block;float: left;margin: 0; padding: 5px 0; }
|
||||
.blocEngine .rowForm label { font-weight:normal;}
|
||||
.blocEngine .rowForm label,
|
||||
.blocEngine .rowForm select {width:220px; float:left; text-align:left;}
|
||||
|
||||
.blocEngine p { margin-top:10px;display:block; float:left;}
|
||||
|
||||
/*STATCONTAINER*/
|
||||
#statsContainer {margin-left:220px; padding:0 0 0 20px;}
|
||||
#statsContainer #calendar { background-color: #EEEEEE;border-top: 1px solid #CCCCCC; display: block; margin: 10px 0;min-height: 25px; padding: 5px;}
|
||||
#statsContainer #calendar form {float:left;}
|
||||
#statsContainer #calendar input, #statsContainer #calendar p { float:left;}
|
||||
#statsContainer #calendar input.submitDateDay { border-top-right-radius: 0px; border-bottom-right-radius:0px; border-right:none;}
|
||||
#statsContainer #calendar input.submitDateMonth { border-radius:0px;}
|
||||
#statsContainer #calendar input.submitDateYear { border-top-left-radius: 0px; border-bottom-left-radius:0px; border-left:none; margin-right:10px;}
|
||||
#statsContainer #calendar input.submitDateDayPrev { border-top-right-radius: 0px; border-bottom-right-radius:0px; border-right:none;}
|
||||
#statsContainer #calendar input.submitDateMonthPrev { border-radius:0px;}
|
||||
#statsContainer #calendar input.submitDateYearPrev { border-top-left-radius: 0px; border-bottom-left-radius:0px; border-left:none; margin-right:10px;}
|
||||
#statsContainer #calendar p { margin:2px;}
|
||||
#statsContainer #calendar p span { float:left; display:block; padding:3px;}
|
||||
#statsContainer .blocStats { background-color: #EBEDF4;border: 1px solid #C2C4D9; display: block; position:relative; padding: 10px;}
|
||||
#statsContainer .blocStats h2 { font-weight:normal; margin:0;}
|
||||
#statsContainer .blocStats h2.icon-statsproduct span,
|
||||
#statsContainer .blocStats h2.icon-statsbestsuppliers span,
|
||||
#statsContainer .blocStats h2.icon-statsforecast span,
|
||||
#statsContainer .blocStats h2.icon-pagesnotfound span,
|
||||
#statsContainer .blocStats h2.icon-sekeywords span,
|
||||
#statsContainer .blocStats h2.icon-guide span,
|
||||
#statsContainer .blocStats h2.icon-statsequipment span,
|
||||
#statsContainer .blocStats h2.icon-statsvisits span,
|
||||
#statsContainer .blocStats h2.icon-statssales span,
|
||||
#statsContainer .blocStats h2.icon-statsregistrations span,
|
||||
#statsContainer .blocStats h2.icon-statspersonalinfos span,
|
||||
#statsContainer .blocStats h2.icon-statscatalog span,
|
||||
#statsContainer .blocStats h2.icon-basket-delete span,
|
||||
#statsContainer .blocStats h2.icon-statsbestcustomers span,
|
||||
#statsContainer .blocStats h2.icon-statsorigin span,
|
||||
#statsContainer .blocStats h2.icon-statsbestproducts span,
|
||||
#statsContainer .blocStats h2.icon-statsbestvouchers span,
|
||||
#statsContainer .blocStats h2.icon-statsbestcategories span,
|
||||
#statsContainer .blocStats h2.icon-statscarrier span,
|
||||
#statsContainer .blocStats h2.icon-statssearch span,
|
||||
#statsContainer .blocStats h2.icon-statsstock span,
|
||||
#statsContainer .blocStats h2.icon-conversion span,
|
||||
#statsContainer .blocStats h2.icon-payment span,
|
||||
#statsContainer .blocStats h2.icon-category span,
|
||||
#statsContainer .blocStats h2.icon-currency span,
|
||||
#statsContainer .blocStats h2.icon-language span,
|
||||
#statsContainer .blocStats h2.icon-attribute span { background: transparent url(icon-sprites-title.png) no-repeat scroll left top; width:16px; height:16px; padding-right:18px; margin-right:3px;}
|
||||
|
||||
#statsContainer .blocStats h2.icon-statsproduct span { background-position :2px 2px;}
|
||||
#statsContainer .blocStats h2.icon-statsforecast span { background-position :-18px 2px;}
|
||||
#statsContainer .blocStats h2.icon-guide span { background-position :-36px 2px;}
|
||||
#statsContainer .blocStats h2.icon-statsbestsuppliers span { background-position :-54px 2px;}
|
||||
#statsContainer .blocStats h2.icon-pagesnotfound span { background-position :-72px 2px;}
|
||||
#statsContainer .blocStats h2.icon-sekeywords span { background-position :-90px 2px;}
|
||||
#statsContainer .blocStats h2.icon-statsequipment span { background-position :-108px 2px;}
|
||||
#statsContainer .blocStats h2.icon-statsvisits span { background-position :-126px 2px;}
|
||||
#statsContainer .blocStats h2.icon-statsregistrations span { background-position :-147px 2px;}
|
||||
#statsContainer .blocStats h2.icon-statssales span { background-position : 0 -16px;}
|
||||
#statsContainer .blocStats h2.icon-statspersonalinfos span { background-position : -18px -16px;}
|
||||
#statsContainer .blocStats h2.icon-statscatalog span { background-position : -36px -16px;}
|
||||
#statsContainer .blocStats h2.icon-category span { background-position : -36px -16px;}
|
||||
#statsContainer .blocStats h2.icon-basket-delete span { background-position : -54px -16px;}
|
||||
#statsContainer .blocStats h2.icon-statsbestcustomers span { background-position : -72px -16px;}
|
||||
#statsContainer .blocStats h2.icon-statsorigin span { background-position : -90px -16px;}
|
||||
#statsContainer .blocStats h2.icon-statsbestproducts span { background-position : -108px -16px;}
|
||||
#statsContainer .blocStats h2.icon-statsbestvouchers span { background-position : -126px -16px;}
|
||||
#statsContainer .blocStats h2.icon-statsbestcategories span { background-position : -147px -17px;}
|
||||
#statsContainer .blocStats h2.icon-statscarrier span { background-position : 2px -36px;}
|
||||
#statsContainer .blocStats h2.icon-statssearch span { background-position : -18px -36px;}
|
||||
#statsContainer .blocStats h2.icon-statsstock span { background-position : -36px -36px;}
|
||||
#statsContainer .blocStats h2.icon-conversion span { background-position : -54px -36px;}
|
||||
#statsContainer .blocStats h2.icon-payment span { background-position : -72px -36px;}
|
||||
#statsContainer .blocStats h2.icon-currency span { background-position : -90px -36px;}
|
||||
#statsContainer .blocStats h2.icon-language span { background-position : -106px -36px;}
|
||||
#statsContainer .blocStats h2.icon-attribute span { background-position : -126px -36px;}
|
||||
#statsContainer .blocStats form { position:absolute; top:10px; right:5px;}
|
||||
#statsContainer .blocStats form.checkup { position:relative; top:0; left:0;}
|
||||
#statsContainer .totalStats { font-size:16px; font-weight:bold;}
|
||||
|
||||
/*MODULECONTAINER*/
|
||||
#moduleContainer { margin-left:220px; padding:13px 0 0 20px;}
|
||||
#moduleContainer .table tr th { height:40px;}
|
||||
@@ -250,8 +363,8 @@ form#product_form, form#access_form, form#cart_rule_form { background-color:#e
|
||||
#moduleContainer .moduleDesc .metadata dl dt, .moduleDesc .metadata dl dd { float:left; margin:0; padding:0;}
|
||||
#moduleContainer .moduleDesc .metadata dl dd { padding-right:10px;}
|
||||
#moduleContainer .moduleDesc .metadata dl dt { font-weight:bold; padding-right:5px;}
|
||||
#moduleContainer .moduleDesc p.desc { color:#666; font-size:12px; display:block; clear:both;}
|
||||
#moduleContainer .setup {background-color:#6db300; font-size:10px; color:#fff; text-transform:uppercase; position:relative; left:10px; padding:0px 4px; display: inline-block; border-radius:3px;}
|
||||
#moduleContainer .moduleDesc p.desc { color:#666; font-family: Georgia; font-style: italic; font-size:12px; display:block; clear:both;}
|
||||
#moduleContainer .setup {background-color:#6db300;font-size:10px; color:#fff; text-transform:uppercase; position:relative; left:10px; padding:0px 4px; display: inline-block; border-radius:3px;}
|
||||
#moduleContainer .setup.non-install { background-color:#ec7000;}
|
||||
#moduleContainer .setup.off{ background-color:#ccc;}
|
||||
#moduleContainer .row-actions-module span { padding-right:5px;}
|
||||
@@ -264,7 +377,26 @@ form#product_form, form#access_form, form#cart_rule_form { background-color:#e
|
||||
#moduleContainer .moduleGridDesc h3 { color:#3A6EA7; margin:0;}
|
||||
#moduleContainer ul.listing-grid-module li select { position:absolute; top:0; right:0px; }
|
||||
|
||||
/*MODULE POSITION*/
|
||||
.blocLiveEdit { float:right; clear:right; background-color: #EBEDF4; border: 1px solid #C2C4D9;display: block; width:250px;}
|
||||
.blocLiveEdit h2 { background: transparent url(live_edit.png) no-repeat scroll 10px 10px; height: 40px; line-height: 50px;margin: 0; padding: 0 10px; text-indent: 40px;}
|
||||
.blocLiveEdit p { padding: 0 10px;}
|
||||
.blocLiveEdit a.button {float: left; margin:10px; display: inline-block;}
|
||||
|
||||
|
||||
#modulePosition { width:100%; float:left; clear:left; margin-right:270px;}
|
||||
#modulePosition .table tr th { height:40px;}
|
||||
#modulePosition form{ margin-right:270px;}
|
||||
#modulePosition .lab_modules_positions h3 { color:#3A6EA7; margin:0 0 0 10px; float:left;}
|
||||
#modulePosition .lab_modules_positions p { font-family:Georgia; font-style: italic; font-size:12px; padding-left:40px;}
|
||||
#modulePosition .lab_modules_positions span { font-size:12px; padding-left:5px;}
|
||||
|
||||
select#show_modules { font-size:12px;}
|
||||
|
||||
/*FOOTER*/
|
||||
#footer {height:40px; font-size:12px;clear:both;font-size:0.9em;color:#666666}
|
||||
#footer .footer_link, #footer .footer_link:hover {color:#D41958;}
|
||||
#footer .footerLeft { float:left; margin-left:10px;}
|
||||
#footer .footerRight {float:right; margin-right:10px;}
|
||||
|
||||
|
||||
#footer .footer_link, #footer .footer_link:hover { color:#268CCD;}
|
||||
|
||||
BIN
admin-dev/themes/default/export-csv.png
Executable file
|
After Width: | Height: | Size: 703 B |
BIN
admin-dev/themes/default/icon-sprites-title.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
admin-dev/themes/default/live_edit.png
Executable file
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
admin-dev/themes/default/process-icon-export-csv-details.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
admin-dev/themes/default/process-icon-export-csv.png
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -26,7 +26,7 @@
|
||||
|
||||
{if $existingExport}
|
||||
<div class="hint" style="display:block;">
|
||||
{l s='The last export has been for this section:'}
|
||||
{l s='The last export has been found for this section:'}
|
||||
<a href="{$smarty.server.REQUEST_URI}&download={$type}">{l s='Click here'}</a>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
@@ -50,7 +50,8 @@
|
||||
{foreach from=$shop_details['zones'] key=id_zone item=currentZone}
|
||||
<label>{$currentZone['name']}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="zone_{$id_zone}" value="{$currentZone['account_number']}" />
|
||||
<input type="text" name="zone_{$id_zone}" value="{$currentZone['account_number']|escape:htmlall}" />
|
||||
|
||||
</div>
|
||||
{/foreach}
|
||||
<div class="margin-form">
|
||||
@@ -59,4 +60,4 @@
|
||||
</form>
|
||||
<div class="separation"></div>
|
||||
</fieldset>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<iframe frameborder="no" style="margin:0px;padding:0px;width:100%;height:920px" src="http://addons.prestashop.com/iframe/myaccount.php?parentUrl={$parentDomain}"></iframe>
|
||||
<iframe frameborder="no" style="margin:0px;padding:0px;width:960px;height:920px" src="http://addons.prestashop.com/iframe/myaccount.php?parentUrl={$parentDomain}"></iframe>
|
||||
<div class="clear"> </div>
|
||||
|
||||
@@ -67,7 +67,6 @@
|
||||
|
||||
{if $generate}
|
||||
<div class="module_confirmation conf confirm">
|
||||
<img src="../img/admin/ok.gif" alt="" title="" style="margin-right:5px; float:left;" />
|
||||
{$combinations_size} {l s='product(s) successfully created.'}
|
||||
</div>
|
||||
{/if}
|
||||
@@ -75,6 +74,28 @@
|
||||
<form enctype="multipart/form-data" method="post" id="generator" action="{$url_generator}">
|
||||
<fieldset style="margin-bottom: 35px;">
|
||||
<legend><img src="../img/admin/asterisk.gif" />{l s='Attributes generator'}</legend>
|
||||
<div style="float: left; margin-right:50px;">
|
||||
<div>
|
||||
<select multiple name="attributes[]" id="attribute_group" style="width: 200px; height: 350px; margin-bottom: 10px;">
|
||||
{foreach $attribute_groups as $k => $attribute_group}
|
||||
{if isset($attribute_js[$attribute_group['id_attribute_group']])}
|
||||
<optgroup name="{$attribute_group['id_attribute_group']}" id="{$attribute_group['id_attribute_group']}" label="{$attribute_group['name']|escape:'htmlall':'UTF-8'}">
|
||||
{foreach $attribute_js[$attribute_group['id_attribute_group']] as $k => $v}
|
||||
<option name="{$k}" id="attr_{$k}" value="{$v|escape:'quotes':'UTF-8'}" title="{$v|escape:'quotes':'UTF-8'}">{$v|escape:'quotes':'UTF-8'}</option>
|
||||
{/foreach}
|
||||
</optgroup>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<p style="text-align: center;">
|
||||
<input class="button" type="button" style="margin: 0 0 10px 20px;" value="{l s='Add'}" class="button" onclick="add_attr_multiple();" />
|
||||
<input class="button" type="button" style="margin: 0 0 10px 20px;" value="{l s='Delete'}" class="button" onclick="del_attr_multiple();" /><br />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
{l s='Add or modify attributes for product:'} <b>{$product_name}</b>
|
||||
<br /><br />
|
||||
<div style="padding-top:10px; float: left; width: 570px;">
|
||||
@@ -119,28 +140,5 @@
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 60px;">
|
||||
<div>
|
||||
<select multiple name="attributes[]" id="attribute_group" style="width: 200px; height: 350px; margin-bottom: 10px;">';
|
||||
{$attribute_groups|@var_dump}
|
||||
{foreach $attribute_groups as $k => $attribute_group}
|
||||
{if isset($attribute_js[$attribute_group['id_attribute_group']])}
|
||||
<optgroup name="{$attribute_group['id_attribute_group']}" id="{$attribute_group['id_attribute_group']}" label="{$attribute_group['name']|escape:'htmlall':'UTF-8'}">';
|
||||
{foreach $attribute_js[$attribute_group['id_attribute_group']] as $k => $v}
|
||||
<option name="{$k}" id="attr_{$k}" value="{$v|escape:'quotes':'UTF-8'}" title="{$v|escape:'quotes':'UTF-8'}">{$v|escape:'quotes':'UTF-8'}</option>
|
||||
{/foreach}
|
||||
</optgroup>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<p style="text-align: center;">
|
||||
<input class="button" type="button" style="margin: 0 0 10px 20px;" value="{l s='Add'}" class="button" onclick="add_attr_multiple();" />
|
||||
<input class="button" type="button" style="margin: 0 0 10px 20px;" value="{l s='Delete'}" class="button" onclick="del_attr_multiple();" /><br />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -23,9 +23,27 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helper/form/form.tpl"}
|
||||
|
||||
{block name=script}
|
||||
{block name="label"}
|
||||
{if $input.type == 'color'}
|
||||
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if}";>
|
||||
{/if}
|
||||
{if isset($input.label)}
|
||||
<label>{$input.label} </label>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="end_field_block"}
|
||||
{if $input.type == 'text' && $input.name == 'texture'}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="script"}
|
||||
var attributesGroups = {ldelim}{$strAttributesGroups}{rdelim};
|
||||
$('#id_attribute_group').change(function() {
|
||||
var val = $(this).val();
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
{if $show_toolbar}
|
||||
<div class="toolbar-placeholder">
|
||||
<div class="toolbarBox {if $toolbar_fix}toolbarHead{/if}">
|
||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn}
|
||||
<div class="pageTitle">
|
||||
<h3>
|
||||
{block name=pageTitle}
|
||||
<span id="current_obj" style="font-weight: normal;">{$title|default:' '}</span>
|
||||
{/block}
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||
{/if}
|
||||
|
||||
<div>
|
||||
<div class="productTabs">
|
||||
<ul class="tab">
|
||||
@@ -33,8 +49,8 @@
|
||||
</div>
|
||||
<div class="separation"></div>
|
||||
<div style="text-align:center">
|
||||
<input type="submit" value="{l s='Save'}" class="button" name="submitAddcart_rule" />
|
||||
<input type="submit" value="{l s='Save and stay'}" class="button" name="submitAddcart_ruleAndStay" />
|
||||
<input type="submit" value="{l s='Save'}" class="button" name="submitAddcart_rule" id="{$table}_form_submit_btn" />
|
||||
<!--<input type="submit" value="{l s='Save and stay'}" class="button" name="submitAddcart_ruleAndStay" id="" />-->
|
||||
</div>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">{displayWtPriceWithCurrency price=$product.price_wt currency=$currency}</td>
|
||||
<td align="center" class="productQuantity">{$product.customizationQuantityTotal}</td>
|
||||
<td align="center" class="productQuantity">{$product.customization_quantity}</td>
|
||||
<td align="center" class="productQuantity">{$product.qty_in_stock}</td>
|
||||
<td align="right">{displayWtPriceWithCurrency price=$product.total_customization_wt currency=$currency}</td>
|
||||
</tr>
|
||||
@@ -121,7 +121,7 @@
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{if $product.cart_quantity > $product.customizationQuantityTotal}
|
||||
{if $product.cart_quantity > $product.customization_quantity}
|
||||
<tr>
|
||||
<td align="center">{$product.image}</td>
|
||||
<td>
|
||||
@@ -132,7 +132,7 @@
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">{displayWtPriceWithCurrency price=$product.product_price currency=$currency}</td>
|
||||
<td align="center" class="productQuantity">{math equation='x - y' x=$product.cart_quantity y=$product.customizationQuantityTotal}</td>
|
||||
<td align="center" class="productQuantity">{math equation='x - y' x=$product.cart_quantity y=$product.customization_quantity}</td>
|
||||
<td align="center" class="productQuantity">{$product.qty_in_stock}</td>
|
||||
<td align="right">{displayWtPriceWithCurrency price=$product.product_total currency=$currency}</td>
|
||||
</tr>
|
||||
|
||||
37
admin-dev/themes/template/categories/form.tpl
Normal file
@@ -0,0 +1,37 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 8971 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
{extends file="helper/form/form.tpl"}
|
||||
|
||||
{block name="end_field_block"}
|
||||
{if ($input.name == 'groupBox')}
|
||||
<p class="hint" style="display:block">
|
||||
<span>{$input.info_introduction}</span><br />
|
||||
<span>{$input.unidentified}</span><br />
|
||||
<span>{$input.guest}</span><br />
|
||||
<span>{$input.customer}</span><br />
|
||||
</p><br /><br /><br /><br />
|
||||
{/if}</div>
|
||||
{/block}
|
||||
@@ -24,4 +24,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{$content}
|
||||
{if isset($content)}
|
||||
{$content}
|
||||
{/if}
|
||||
|
||||
107
admin-dev/themes/template/countries/list_footer.tpl
Normal file
@@ -0,0 +1,107 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9432 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
</table>
|
||||
{if $bulk_actions}
|
||||
<p>
|
||||
{if $bulk_actions|count > 1}
|
||||
<select id="select_submitBulk" name="select_submitBulk">
|
||||
{foreach $bulk_actions as $key => $params}
|
||||
<option value="{$key}">{$params.text}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input type="submit" class="button" name="submitBulk" id="submitBulk" value="{l s='Apply'}" />
|
||||
{else}
|
||||
{foreach $bulk_actions as $key => $params}
|
||||
{if $key == 'affectzone'}
|
||||
<select id="zone_to_affect" name="zone_to_affect">
|
||||
{foreach $zones as $z}
|
||||
<option value="{$z['id_zone']}">{$z['name']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/if}
|
||||
<input type="submit" class="button" name="submitBulk{$key}{$table}" value="{$params.text}" {if isset($params.confirm)}onclick="return confirm('{$params.confirm}');"{/if} />
|
||||
{/foreach}
|
||||
{/if}
|
||||
</p>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="token" value="{$token}" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
var confirmation = new Array();
|
||||
{foreach $bulk_actions as $key => $params}
|
||||
{if isset($params.confirm)}
|
||||
confirmation['{$key}{$table}'] = "{$params.confirm}";
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
$(document).ready(function(){
|
||||
{if $bulk_actions|count > 1}
|
||||
$('#submitBulk').click(function(){
|
||||
if (confirmation[$(this).val()])
|
||||
return confirm(confirmation[$(this).val()]);
|
||||
else
|
||||
return true;
|
||||
});
|
||||
$('#select_submitBulk').change(function(){
|
||||
if ($(this).val() == 'affectzone')
|
||||
loadZones();
|
||||
else if (loaded)
|
||||
$('#zone_to_affect').fadeOut('slow');
|
||||
});
|
||||
{/if}
|
||||
});
|
||||
var loaded = false;
|
||||
function loadZones()
|
||||
{
|
||||
if (!loaded)
|
||||
{
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'ajax.php',
|
||||
data: 'getZones=true&token={$token}',
|
||||
async : true,
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
var html = $(data);
|
||||
html.hide();
|
||||
$('#select_submitBulk').after(html);
|
||||
html.fadeIn('slow');
|
||||
}
|
||||
});
|
||||
loaded = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#zone_to_affect').fadeIn('slow');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
102
admin-dev/themes/template/customer_threads/list_header.tpl
Normal file
@@ -0,0 +1,102 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9639 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helper/list/list_header.tpl"}
|
||||
|
||||
{block name="override_header"}
|
||||
|
||||
<div id="CustomerThreadContacts">
|
||||
|
||||
{assign var=nb_categories value=count($categories)}
|
||||
|
||||
{foreach $categories as $key => $val}
|
||||
|
||||
{assign var=total_thread value=0}
|
||||
{assign var=id_customer_thread value=0}
|
||||
|
||||
{foreach $contacts as $tmp => $tmp2}
|
||||
{if $val.id_contact == $tmp2.id_contact}
|
||||
|
||||
{assign var=total_thread value=$tmp2.total}
|
||||
{assign var=id_customer_thread value=$tmp2.id_customer_thread}
|
||||
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
<div style="width:{if $nb_categories > 6}200{else}300{/if}px;">
|
||||
|
||||
<h3> {$val.name}</h3>
|
||||
|
||||
{if $nb_categories < 6}
|
||||
<p>{$val.description}</p>
|
||||
{/if}
|
||||
|
||||
{if $total_thread == 0}
|
||||
<h4>{l s='No new message'}</h4>
|
||||
{else}
|
||||
<a href="{$currentIndex}&token={$token}&id_customer_thread={$id_customer_thread}&viewcustomer_thread" class="button">
|
||||
{$total_thread}
|
||||
{if $total_thread > 1}{l s='new messages'}{else}{l s='new message'}{/if}
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
|
||||
<div id="MeaningStatus">
|
||||
<h3> {l s='Meaning of status'}</h3>
|
||||
<ul>
|
||||
<li><img src="../img/admin/status_green.png" alt="{l s='Open'}">{l s='Open'}</li>
|
||||
<li><img src="../img/admin/status_red.png" alt="{l s='Closed'}">{l s='Closed'}</li>
|
||||
<li><img src="../img/admin/status_orange.png" alt="{l s='Pending 1'}">{l s='Pending 1'}</li>
|
||||
<li><img src="../img/admin/status_orange.png" alt="{l s='Pending 2'}">{l s='Pending 2'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="CustomerService">
|
||||
<table cellspacing="1" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2">{l s='Customer service'} : {l s='Statistics'}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{assign var=count value=0}
|
||||
{foreach $params as $key => $val}
|
||||
{assign var=count value=$count+1}
|
||||
<tr {if $count % 2 == 0}class="alt_row"{/if}>
|
||||
<td>{$key}</td>
|
||||
<td>{$val}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p class="clear"> </p>
|
||||
|
||||
{/block}
|
||||
178
admin-dev/themes/template/customer_threads/message.tpl
Normal file
@@ -0,0 +1,178 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 8897 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
|
||||
|
||||
{if !$email}
|
||||
|
||||
<fieldset style="margin-top:10px;{if !empty($message.employee_name)}background: rgb(255,236,242){/if}">
|
||||
<legend {if !empty($message.employee_name)}style="background:rgb(255,210,225)"{/if}>
|
||||
{if !empty($message.employee_name)}
|
||||
<img src="../img/t/AdminCustomers.gif" alt="{$PS_SHOP_NAME}" />
|
||||
{$PS_SHOP_NAME} - {$message.employee_name}
|
||||
{else}
|
||||
<img src="../img/admin/tab-customers.gif" alt="{$PS_SHOP_NAME}" />
|
||||
{if !empty($message.id_customer)}
|
||||
<a href="index.php?tab=AdminCustomers&id_customer={$message.id_customer}&viewcustomer&token={getAdminToken tab='AdminCustomers'}" title="{l s='View customer'}">
|
||||
{$message.customer_name}
|
||||
</a>
|
||||
{else}
|
||||
{$message.email}
|
||||
{/if}
|
||||
{/if}
|
||||
</legend>
|
||||
|
||||
<div style="font-size:11px">
|
||||
{if !empty($message.id_customer) && empty($message.employee_name)}
|
||||
<b>{l s='Customer ID:'}</b>
|
||||
<a href="index.php?tab=AdminCustomers&id_customer={$message.id_customer}&viewcustomer&token={getAdminToken tab='AdminCustomers'}" title="{l s='View customer'}">
|
||||
{$message.id_customer} <img src="../img/admin/search.gif" alt="{l s='view'}" />
|
||||
</a><br />
|
||||
{/if}
|
||||
|
||||
<b>{l s='Sent on:'}</b> {$message.date_add}<br />
|
||||
{if empty($message.employee_name)}
|
||||
<b>{l s='Browser:'}</b> {$message.user_agent}<br />
|
||||
{/if}
|
||||
|
||||
{if !empty($message.file_name) && $file_name}
|
||||
<b>{l s='File attachment'}</b>
|
||||
<a href="index.php?tab=AdminCustomerThreads&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread&token={getAdminToken tab='AdminCustomerThreads'}&filename={$message.file_name}"
|
||||
title="{l s='View file'}">
|
||||
<img src="../img/admin/search.gif" alt="{l s='view'}" />
|
||||
</a><br />
|
||||
{/if}
|
||||
|
||||
{if !empty($message.id_order) && empty($message.employee_name)}
|
||||
<b>{l s='Order #'}</b>
|
||||
<a href="index.php?tab=AdminOrders&id_order={$message.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}" title="{l s='View order'}">
|
||||
{$message.id_order} <img src="../img/admin/search.gif" alt="{l s='view'}" />
|
||||
</a><br />
|
||||
{/if}
|
||||
|
||||
{if !empty($message.id_product) && empty($message.employee_name)}
|
||||
<b>{l s='Product #'}</b>
|
||||
<a href="index.php?tab=AdminOrders&id_order={$id_order_product}&vieworder&token={getAdminToken tab='AdminOrders'}" title="{l s='View order'}">
|
||||
{$message.id_product} <img src="../img/admin/search.gif" alt="{l s='view'}" />
|
||||
</a><br />
|
||||
{/if}
|
||||
<br />
|
||||
|
||||
<form action="{$current}&token={$token}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread" method="post">
|
||||
<b>{l s='Subject:'}</b>
|
||||
<input type="hidden" name="id_customer_message" value="{$message.id_customer_message}" />
|
||||
<select name="id_contact" onchange="this.form.submit();">
|
||||
{foreach $contacts as $contact}
|
||||
<option value="{$contact.id_contact}" {if $contact.id_contact == $message.id_contact}selected="selected"{/if}>
|
||||
{$contact.name}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</form>
|
||||
|
||||
{else}
|
||||
|
||||
<div style="font-size:11px">
|
||||
{if $id_employee}
|
||||
<a href="{$current}&token={getAdminToken tab='AdminCustomerThreads'}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread">'.
|
||||
{l s='View this thread'}
|
||||
</a><br />
|
||||
{/if}
|
||||
<b>{l s='Sent by:'}</b>
|
||||
|
||||
{if !empty($message.customer_name)}
|
||||
{$message.customer_name} ({$message.email})
|
||||
{else}
|
||||
{$message.email}
|
||||
{/if}
|
||||
|
||||
{if !empty($message.id_customer) && empty($message.employee_name)}
|
||||
<br /><b>{l s='Customer ID:'}</b> {$message.id_customer}<br />
|
||||
{/if}
|
||||
|
||||
{if !empty($message.id_order) && empty($message.employee_name)}
|
||||
<br /><b>{l s='Order #'}:</b> {$message.id_order}<br />
|
||||
{/if}
|
||||
|
||||
{if !empty($message.id_product) && empty($message.employee_name)}
|
||||
<br /><b>{l s='Product #'}:</b> {$message.id_product}<br />
|
||||
{/if}
|
||||
|
||||
<br /><b>{l s='Subject:'}</b> {$message.subject}
|
||||
|
||||
{/if}
|
||||
<br /><br />
|
||||
<b>{l s='Thread ID:'}</b> {$message.id_customer_thread}<br />
|
||||
<b>{l s='Message ID:'}</b> {$message.id_customer_message}<br />
|
||||
<b>{l s='Message:'}</b><br />
|
||||
{$message.message}
|
||||
</div>
|
||||
|
||||
|
||||
{if !$email}
|
||||
|
||||
{if empty($message.employee_name)}
|
||||
|
||||
<p style="text-align:right">
|
||||
<button style="font-family: Verdana; font-size: 11px; font-weight:bold; height: 65px; width: 120px;"
|
||||
onclick="$('#reply_to_{$message.id_customer_message}').show(500); $(this).hide();">
|
||||
<img src="../img/admin/contact.gif" alt="" style="margin-bottom: 5px;" /><br />{l s='Reply to this message'}
|
||||
</button>
|
||||
</p>
|
||||
|
||||
{/if}
|
||||
|
||||
<div id="reply_to_{$message.id_customer_message}" style="display: none; margin-top: 20px;"">
|
||||
<form action="{$current}&token={getAdminToken tab='AdminCustomerThreads'}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread" method="post" enctype="multipart/form-data">
|
||||
<p>{l s='Please type your reply below:'}</p>
|
||||
<textarea style="width: 450px; height: 175px;" name="reply_message">'.
|
||||
{$PS_CUSTOMER_SERVICE_SIGNATURE}
|
||||
</textarea>
|
||||
<div style="width: 450px; text-align: right; font-style: italic; font-size: 9px; margin-top: 2px;">
|
||||
{l s='Your reply will be sent to:'} {$message.email}
|
||||
</div>
|
||||
<div style="width: 450px; margin-top: 0px;">
|
||||
<input type="file" name="joinFile"/>
|
||||
<div>
|
||||
<div style="width: 450px; text-align: center;">
|
||||
<input type="submit" class="button" name="submitReply" value="{l s='Send my reply'}" style="margin-top:20px;" />
|
||||
<input type="hidden" name="id_customer_thread" value="{$message.id_customer_thread}" />
|
||||
<input type="hidden" name="msg_email" value="{$message.email}" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</fieldset>
|
||||
171
admin-dev/themes/template/customer_threads/view.tpl
Normal file
@@ -0,0 +1,171 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 8897 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helper/view/view.tpl"}
|
||||
|
||||
{block name="override_tpl"}
|
||||
<form action="{$current}&token={$token}&viewcustomer_thread&id_customer_thread={$id_customer_thread}" method="post" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
|
||||
<div id="ChangeStatus">
|
||||
<select onchange="quickSelect(this);">
|
||||
<option value="0">{l s='Change status of message:'}</option>
|
||||
{foreach $actions as $action}
|
||||
<option value="{$action.href}">> {$action.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<img src="../img/admin/msg-forward.png" alt="" style="vertical-align: middle;" />
|
||||
{l s='Forward this discussion to an employee:'}
|
||||
<select name="id_employee_forward" style="vertical-align: middle;">
|
||||
<option value="-1">{l s='-- Choose --'}</option>
|
||||
{foreach $employees as $employee}
|
||||
<option value="{$employee.id_employee}"> {$employee.firstname|substr:0:1}. {$employee.lastname}</option>
|
||||
{/foreach}
|
||||
<option value="0">{l s='Someone else'}</option>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<div id="message_forward_email" style="display:none">
|
||||
<b>{l s='E-mail'}</b> <input type="text" name="email" />
|
||||
</div>
|
||||
|
||||
<div id="message_forward" style="display:none;margin-bottom:10px">
|
||||
<textarea name="message_forward" style="width:500px;height:80px;margin-top:15px;">{l s='You can add a comment here.'}</textarea><br />
|
||||
<input type="Submit" name="submitForward" class="button" value="{l s='Forward this discussion'}" style="margin-top: 10px;" />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="clear"> </div>
|
||||
|
||||
{if $thread->id_customer}
|
||||
|
||||
<div style="float:right;margin-left:20px;">
|
||||
{if $orders && count($orders)}
|
||||
{if $count_ok}
|
||||
<div>
|
||||
<h2>{l s='Orders'}</h2>
|
||||
<table cellspacing="0" cellpadding="0" class="table float">
|
||||
<tr>
|
||||
<th class="center">{l s='ID'}</th>
|
||||
<th class="center">{l s='Date'}</th>
|
||||
<th class="center">{l s='Products'}</th>
|
||||
<th class="center">{l s='Total paid'}</th>
|
||||
<th class="center">{l s='Payment'}</th>
|
||||
<th class="center">{l s='State'}</th>
|
||||
<th class="center">{l s='Actions'}</th>
|
||||
</tr>
|
||||
{assign var=irow value=0}
|
||||
{foreach $orders_ok as $order}
|
||||
<tr {if $irow++ % 2}class="alt_row"{/if} style="cursor: pointer"
|
||||
onclick="document.location='?tab=AdminOrders&id_order={$order.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}">
|
||||
<td class="center">{$order.id_order}</td>
|
||||
<td>{$order.date_add}</td>
|
||||
<td align="right">{$order.nb_products}</td>
|
||||
<td align="right">{$order.total_paid_real}</td>
|
||||
<td>{$order.payment}</td>
|
||||
<td>{$order.order_state}</td>
|
||||
<td align="center">
|
||||
<a href="?tab=AdminOrders&id_order={$order.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}">
|
||||
<img src="../img/admin/details.gif" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<h3 style="color:green;font-weight:700;margin-top:10px">
|
||||
{l s='Validated Orders:'} {$count_ok} {l s='for'} {$total_ok}
|
||||
</h3>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
{if $products && count($products)}
|
||||
<div>
|
||||
<h2>{l s='Products'}</h2>
|
||||
<table cellspacing="0" cellpadding="0" class="table">
|
||||
<tr>
|
||||
<th class="center">{l s='Date'}</th>
|
||||
<th class="center">{l s='ID'}</th>
|
||||
<th class="center">{l s='Name'}</th>
|
||||
<th class="center">{l s='Quantity'}</th>
|
||||
<th class="center">{l s='Actions'}</th>
|
||||
</tr>
|
||||
{assign var=irow value=0}
|
||||
{foreach $products as $product}
|
||||
<tr {if $irow++ % 2}class="alt_row"{/if} style="cursor: pointer"
|
||||
onclick="document.location = '?tab=AdminOrders&id_order={$product.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}'">
|
||||
<td>{$product.date_add}</td>
|
||||
<td>{$product.product_id}</td>
|
||||
<td>{$product.product_name}</td>
|
||||
<td align="right">{$product.product_quantity}</td>
|
||||
<td align="center">
|
||||
<a href="?tab=AdminOrders&id_order={$product.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}">
|
||||
<img src="../img/admin/details.gif" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div style="margin-top:10px">
|
||||
{foreach $messages as $message}
|
||||
{$message}
|
||||
{/foreach}
|
||||
</div>
|
||||
<div class="clear"> </div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('select[name=id_employee_forward]').change(function(){
|
||||
if ($(this).val() >= 0)
|
||||
$('#message_forward').show(400);
|
||||
else
|
||||
$('#message_forward').hide(200);
|
||||
if ($(this).val() == 0)
|
||||
$('#message_forward_email').show(200);
|
||||
else
|
||||
$('#message_forward_email').hide(200);
|
||||
});
|
||||
$('teaxtrea[name=message_forward]').click(function(){
|
||||
if($(this).val() == '{l s='You can add a comment here.'}')
|
||||
{
|
||||
$(this).val('');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
{if $display_footer}
|
||||
{$HOOK_FOOTER}
|
||||
<div id="footer">
|
||||
<div style="float:left;margin-left:10px;padding-top:6px">
|
||||
<a href="http://www.prestashop.com/" target="_blank" style="font-weight:700;color:#666666">PrestaShop™ {$ps_version}</a><br />
|
||||
<span style="font-size:10px">{l s='Load time: '}{$end_time}s</span>
|
||||
<div class="footerLeft">
|
||||
<a href="http://www.prestashop.com/" target="_blank">PrestaShop™ {$ps_version}</a><br />
|
||||
<span>{l s='Load time: '}{$end_time}s</span>
|
||||
</div>
|
||||
<div style="float:right;height:40px;margin-right:10px;line-height:38px;vertical-align:middle">
|
||||
<div class="footerRight">
|
||||
{if $iso_is_fr}
|
||||
<span style="color: #812143; font-weight: bold;">Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h
|
||||
<span>Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h
|
||||
{/if}
|
||||
| <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">{l s='Contact'}</a>
|
||||
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
||||
@@ -48,5 +48,6 @@
|
||||
{* ajaxBox allows*}
|
||||
<div id="ajaxBox" style="display:none"></div>
|
||||
{/if}
|
||||
<div id="scrollTop"><a href="#top"></a></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -27,14 +27,34 @@
|
||||
|
||||
{block name=script}
|
||||
|
||||
function toggleShareOrders() {
|
||||
|
||||
var disabled_customer = ($('#share_customer_on').attr('checked')) ? false : true;
|
||||
var disabled_stock = ($('#share_stock_on').attr('checked')) ? false : true;
|
||||
|
||||
if (disabled_customer || disabled_stock)
|
||||
{
|
||||
$("input[name=share_order]").each(function(i) {
|
||||
$(this).attr('disabled', 'disabled');
|
||||
});
|
||||
|
||||
$('#share_order_off').attr('checked', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$('input[name=share_order]').attr('disabled', '');
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input[name=share_order]').attr('disabled', true);
|
||||
toggleShareOrders();
|
||||
$('input[name=share_customer]').click(function()
|
||||
{
|
||||
var disabled = ($('input[name=share_customer]').attr('checked')) ? false : true;
|
||||
$('input[name=share_order]').attr('disabled', disabled);
|
||||
if (disabled)
|
||||
$('#share_order_off').attr('checked', true);
|
||||
toggleShareOrders();
|
||||
});
|
||||
$('input[name=share_stock]').click(function()
|
||||
{
|
||||
toggleShareOrders();
|
||||
});
|
||||
|
||||
$('#useImportData').click(function() {
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
{block name="override_tpl"}
|
||||
|
||||
<fieldset style="width: 400px">
|
||||
<span style="font-weight: bold; font-size: 14px;">{l s='Name:'}</span>
|
||||
<span style="font-weight: bold; font-size: 14px;">{l s='Name:'}</span> {$group->name[$language->id]}
|
||||
<div class="clear"> </div>
|
||||
<span style="font-weight: bold; font-size: 14px;">{l s='Discount:'}</span> {$group->reduction} {l s='%'}
|
||||
<div class="clear"> </div>
|
||||
@@ -54,6 +54,8 @@
|
||||
{l s='Tax included'}
|
||||
{/if}
|
||||
<div class="clear"> </div>
|
||||
<span style="font-weight: bold; font-size: 14px;">{l s='Show prices:'}</span> {if $group->show_prices}{l s='Yes'}{else}{l s='No'}{/if}
|
||||
<div class="clear"> </div>
|
||||
</fieldset>
|
||||
<h2>{l s='Customer members of this group'}</h2>
|
||||
{$customerList}
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
var see_msg = '{l s='Click here to see that message'}';
|
||||
var token_admin_orders = '{getAdminToken tab='AdminOrders'}';
|
||||
var token_admin_customers = '{getAdminToken tab='AdminCustomers'}';
|
||||
var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads'}';
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
@@ -83,7 +84,7 @@
|
||||
{$HOOK_HEADER}
|
||||
{/if}
|
||||
<!--[if IE]>
|
||||
<link type="text/css" rel="stylesheet" href="'._PS_CSS_DIR_.'admin-ie.css" />
|
||||
<link type="text/css" rel="stylesheet" href="{$base_url}css/admin-ie.css" />
|
||||
<![endif]-->
|
||||
<style type="text/css">
|
||||
div#header_infos, div#header_infos a#header_shopname, div#header_infos a#header_logout, div#header_infos a#header_foaccess {
|
||||
@@ -91,7 +92,7 @@
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body {if $bo_color} style="background:{$bo_color}" {/if}>
|
||||
<body{if $bo_color} style="background:{$bo_color}"{/if}>
|
||||
{if $display_header}
|
||||
<div id="top_container">
|
||||
<div id="container">
|
||||
@@ -126,15 +127,15 @@
|
||||
</div>
|
||||
{/if}
|
||||
{if {$show_new_messages} == 1}
|
||||
<div id="messages_notif" class="notifs">
|
||||
<span id="messages_notif_number_wrapper" class="number_wrapper">
|
||||
<span id="messages_notif_value">0</span>
|
||||
<div id="customer_messages_notif" class="notifs">
|
||||
<span id="customer_messages_notif_number_wrapper" class="number_wrapper">
|
||||
<span id="customer_messages_notif_value">0</span>
|
||||
</span>
|
||||
<div id="messages_notif_wrapper" class="notifs_wrapper">
|
||||
<div id="customer_messages_notif_wrapper" class="notifs_wrapper">
|
||||
<h3>{l s='Last messages'}</h3>
|
||||
<p class="no_notifs">{l s='No new messages posted on your shop'}</p>
|
||||
<ul id="list_messages_notif"></ul>
|
||||
<p><a href="index.php?controller=AdminMessages&token={getAdminToken tab='AdminMessages'}">{l s='Show all messages'}</a></p>
|
||||
<ul id="list_customer_messages_notif"></ul>
|
||||
<p><a href="index.php?tab=AdminCustomerThreads&token={getAdminToken tab='AdminCustomerThreads'}">{l s='Show all messages'}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -151,18 +152,18 @@
|
||||
</span>
|
||||
<div id="header_search">
|
||||
<form method="post" action="index.php?controller=AdminSearch&token={getAdminToken tab='AdminSearch'}">
|
||||
<input type="text" name="bo_query" id="bo_query" value="{$bo_query}" />
|
||||
<select name="bo_search_type" id="bo_search_type">
|
||||
<select name="bo_search_type" id="bo_search_type">
|
||||
<option value="0">{l s='everywhere'}</option>
|
||||
<option value="1" {if {$search_type} == 1} selected="selected" {/if}>{l s='catalog'}</option>
|
||||
<optgroup label="{l s='customers'}:">
|
||||
<option value="2" {if {$search_type} == 2} selected="selected" {/if}>{l s='by name'}</option>
|
||||
<option value="6" {if {$search_type} == 6} selected="selected" {/if}>{l s='by ip address'}</option>
|
||||
<option value="2" {if {$search_type} == 2} selected="selected" {/if}>{l s='by name'}</option>
|
||||
<option value="6" {if {$search_type} == 6} selected="selected" {/if}>{l s='by ip address'}</option>
|
||||
</optgroup>
|
||||
<option value="3" {if {$search_type} == 3} selected="selected" {/if}>{l s='orders'}</option>
|
||||
<option value="4" {if {$search_type} == 4} selected="selected" {/if}>{l s='invoices'}</option>
|
||||
<option value="5" {if {$search_type} == 5} selected="selected" {/if}>{l s='carts'}</option>
|
||||
</select>
|
||||
<input type="text" name="bo_query" id="bo_query" value="{$bo_query}" />
|
||||
<input type="submit" id="bo_search_submit" class="button" value="{l s='Search'}"/>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
131
admin-dev/themes/template/helper/assoshop.tpl
Normal file
@@ -0,0 +1,131 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$().ready(function() {
|
||||
// Click on "all shop"
|
||||
$('.input_all_shop').live('click', function() {
|
||||
var checked = $(this).attr('checked');
|
||||
$('.input_group_shop').attr('checked', checked);
|
||||
$('.input_shop').attr('checked', checked);
|
||||
});
|
||||
|
||||
// Click on a group shop
|
||||
$('.input_group_shop').live('click', function() {
|
||||
$('.input_shop[value='+$(this).val()+']').attr('checked', $(this).attr('checked'));
|
||||
check_all_shop();
|
||||
});
|
||||
|
||||
// Click on a shop
|
||||
$('.input_shop').live('click', function() {
|
||||
check_group_shop_status($(this).val());
|
||||
check_all_shop();
|
||||
});
|
||||
|
||||
// Initialize checkbox
|
||||
$('.input_shop').each(function(k, v) {
|
||||
check_group_shop_status($(v).val());
|
||||
check_all_shop();
|
||||
});
|
||||
});
|
||||
|
||||
function check_group_shop_status(id_group) {
|
||||
var groupChecked = true;
|
||||
$('.input_shop[value='+id_group+']').each(function(k, v) {
|
||||
if (!$(v).attr('checked'))
|
||||
groupChecked = false;
|
||||
});
|
||||
$('.input_group_shop[value='+id_group+']').attr('checked', groupChecked);
|
||||
}
|
||||
|
||||
function check_all_shop() {
|
||||
var allChecked = true;
|
||||
$('.input_group_shop').each(function(k, v) {
|
||||
if (!$(v).attr('checked'))
|
||||
allChecked = false;
|
||||
});
|
||||
$('.input_all_shop').attr('checked', allChecked);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="assoShop">
|
||||
<table class="table" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<th>{if $input.type == 'group_shop'}{l s='Group shop'}{else}{l s='Shop'}{/if}</th>
|
||||
</tr>
|
||||
<tr {if $input.type == 'group_shop'}class="alt_row"{/if}>
|
||||
<td>
|
||||
<label class="t"><input class="input_all_shop" type="checkbox" /> {if $input.type == 'group_shop'}{l s='All group shops'}{else}{l s='All shops'}{/if}</label>
|
||||
</td>
|
||||
</tr>
|
||||
{foreach $input.values as $groupID => $groupData}
|
||||
{if ($input.type == 'group_shop' && (isset($fields_value.shop[$groupID]) || !$form_id))}
|
||||
{assign var=groupChecked value=true}
|
||||
{else}
|
||||
{assign var=groupChecked value=false}
|
||||
{/if}
|
||||
<tr {if $input.type == 'shop'}class="alt_row"{/if}>
|
||||
<td>
|
||||
<img style="vertical-align:middle;" alt="" src="../img/admin/lv2_b.gif" />
|
||||
<label class="t">
|
||||
<input class="input_group_shop"
|
||||
type="checkbox"
|
||||
name="checkBoxGroupShopAsso_{$table}[{$form_id}|intval][{$groupID|intval}]"
|
||||
value="{$groupID}"
|
||||
{if $groupChecked} checked="checked"{/if} />
|
||||
{$groupData['name']}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{if $input.type == 'shop'}
|
||||
{assign var=j value=0}
|
||||
{foreach $groupData['shops'] as $shopID => $shopData}
|
||||
{if (isset($fields_value.shop[$shopID]) || !$form_id)}
|
||||
{assign var=checked value=true}
|
||||
{else}
|
||||
{assign var=checked value=false}
|
||||
{/if}
|
||||
<tr>
|
||||
<td>
|
||||
<img style="vertical-align:middle;" alt="" src="../img/admin/lv3_{if $j < count($groupData['shops']) - 1}b{else}f{/if}.png" />
|
||||
<label class="child">
|
||||
<input class="input_shop"
|
||||
type="checkbox"
|
||||
value="{$groupID}"
|
||||
name="checkBoxShopAsso_{$table}[{$form_id|intval}][{$shopID|intval}]"
|
||||
id="checkedBox_{$shopID}"
|
||||
{if $checked} checked="checked"{/if} />
|
||||
{$shopData['name']}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
{assign var=j value=$j+1}
|
||||
{/foreach}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
@@ -27,7 +27,7 @@
|
||||
{if $show_toolbar}
|
||||
<div class="toolbar-placeholder">
|
||||
<div class="toolbarBox {if $toolbar_fix}toolbarHead{/if}">
|
||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn}
|
||||
{include file="toolbar.tpl"}
|
||||
<div class="pageTitle">
|
||||
<h3>
|
||||
{block name=pageTitle}
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
{if isset($fields.title)}<h2>{$fields.title}</h2>{/if}
|
||||
{block name="defaultForm"}
|
||||
<form id="{$table}_form" class="defaultForm" action="{$current}&{$submit_action}=1&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
||||
<form id="{$table}_form" class="defaultForm {$name_controller}" action="{$current}&{$submit_action}=1&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
||||
{if $form_id}
|
||||
<input type="hidden" name="id_{$table}" id="id_{$table}" value="{$form_id}" />
|
||||
{/if}
|
||||
@@ -94,10 +94,9 @@
|
||||
name="{$input.name}_{$language.id_lang}"
|
||||
id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"
|
||||
value="{$fields_value[$input.name][$language.id_lang]}"
|
||||
class="{if $input.type == 'tags'}tagify {/if}"
|
||||
class="{if $input.type == 'tags'}tagify {/if}{if isset($input.class)}{$input.class}{/if}"
|
||||
{if isset($input.size)}size="{$input.size}"{/if}
|
||||
{if isset($input.maxlength)}maxlength="{$input.maxlength}"{/if}
|
||||
{if isset($input.class)}class="{$input.class}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly}readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
||||
{if isset($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer"> </span></span>{/if}
|
||||
@@ -158,7 +157,7 @@
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option[$input.options.options.id]}selected="selected"{/if}
|
||||
{/if}
|
||||
>{$option[$input.options.options.name]|escape:'htmlall':'UTF-8'}</option>
|
||||
>{$option[$input.options.options.name]}</option>
|
||||
{/foreach}
|
||||
</optgroup>
|
||||
{/foreach}
|
||||
@@ -172,7 +171,7 @@
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option[$input.options.id]}selected="selected"{/if}
|
||||
{/if}
|
||||
>{$option[$input.options.name]|escape:'htmlall':'UTF-8'}</option>
|
||||
>{$option[$input.options.name]}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
@@ -259,7 +258,7 @@
|
||||
{assign var=groups value=$input.values}
|
||||
{include file='helper/form/form_group.tpl'}
|
||||
{elseif $input.type == 'shop' OR $input.type == 'group_shop'}
|
||||
{include file='helper/form/form_shop.tpl' input=$input fields_value=$fields_value}
|
||||
{include file='helper/assoshop.tpl' input=$input fields_value=$fields_value}
|
||||
{elseif $input.type == 'categories'}
|
||||
{include file='helper/form/form_category.tpl' categories=$input.values}
|
||||
{elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
|
||||
@@ -283,9 +282,9 @@
|
||||
{elseif $input.type == 'free'}
|
||||
{$fields_value[$input.name]}
|
||||
{/if}
|
||||
{if isset($input.required) && $input.required} <sup>*</sup>{/if}
|
||||
{if isset($input.required) && $input.required && $input.type != 'radio'} <sup>*</sup>{/if}
|
||||
{if isset($input.desc)}
|
||||
<p class="clear">
|
||||
<p class="preference_description">
|
||||
{if is_array($input.desc)}
|
||||
{foreach $input.desc as $p}
|
||||
{if is_array($p)}
|
||||
@@ -299,7 +298,7 @@
|
||||
{/if}
|
||||
</p>
|
||||
{/if}
|
||||
{if isset($languages)}<div class="clear"></div>{/if}
|
||||
{if isset($input.lang) && isset($languages)}<div class="clear"></div>{/if}
|
||||
{block name="end_field_block"}</div>{/block}
|
||||
{/if}
|
||||
{if $input.name == 'id_state'}
|
||||
|
||||
@@ -27,18 +27,24 @@
|
||||
<script type="text/javascript">
|
||||
var inputName = '{$categories.input_name}';
|
||||
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
||||
var selectedCat = '{$categories.selected_cat}';
|
||||
var selectedCat = '{implode value=$categories.selected_cat}';
|
||||
var selectedLabel = '{$categories.trads.selected}';
|
||||
var home = '{$categories.trads.Home}';
|
||||
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
||||
$(document).ready(function(){
|
||||
buildTreeView();
|
||||
});
|
||||
</script>
|
||||
|
||||
<div style="background-color:#F4E6C9; width:99%;padding:5px 0 5px 5px;">
|
||||
<a href="#" id="collapse_all" >{$categories.trads['Collapse All']}</a>
|
||||
- <a href="#" id="expand_all" >{$categories.trads['Expand All']}</a>
|
||||
<div class="category-filter">
|
||||
<span><a href="#" id="collapse_all" >{$categories.trads['Collapse All']}</a>
|
||||
|</span>
|
||||
<span><a href="#" id="expand_all" >{$categories.trads['Expand All']}</a>
|
||||
{if !$categories.use_radio}
|
||||
- <a href="#" id="check_all" >{$categories.trads['Check All']}</a>
|
||||
- <a href="#" id="uncheck_all" >{$categories.trads['Uncheck All']}</a>
|
||||
|</span>
|
||||
<span></span><a href="#" id="check_all" >{$categories.trads['Check All']}</a>
|
||||
|</span>
|
||||
<span></span><a href="#" id="uncheck_all" >{$categories.trads['Uncheck All']}</a></span>
|
||||
{/if}
|
||||
{if $categories.use_search}
|
||||
<span style="margin-left:20px">
|
||||
@@ -75,7 +81,7 @@
|
||||
value="1"
|
||||
{if $home_is_selected}checked{/if}
|
||||
onclick="clickOnCategoryBox($(this));" />
|
||||
{$categories.trads.Home}
|
||||
{$categories.trads.Home}
|
||||
</span>
|
||||
<ul>
|
||||
<li><span class="placeholder"> </span></li>
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 8971 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$().ready(function() {ldelim}
|
||||
// Click on "all shop"
|
||||
$('.input_all_shop').click(function() {ldelim}
|
||||
var checked = $(this).attr('checked');
|
||||
$('.input_group_shop').attr('checked', checked);
|
||||
$('.input_shop').attr('checked', checked);
|
||||
{rdelim});
|
||||
|
||||
// Click on a group shop
|
||||
$('.input_group_shop').click(function() {ldelim}
|
||||
$('.input_shop[value='+$(this).val()+']').attr('checked', $(this).attr('checked'));
|
||||
check_all_shop();
|
||||
{rdelim});
|
||||
|
||||
// Click on a shop
|
||||
$('.input_shop').click(function() {ldelim}
|
||||
check_group_shop_status($(this).val());
|
||||
check_all_shop();
|
||||
{rdelim});
|
||||
|
||||
// Initialize checkbox
|
||||
$('.input_shop').each(function(k, v) {ldelim}
|
||||
check_group_shop_status($(v).val());
|
||||
check_all_shop();
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
|
||||
function check_group_shop_status(id_group) {ldelim}
|
||||
var groupChecked = true;
|
||||
$('.input_shop[value='+id_group+']').each(function(k, v) {ldelim}
|
||||
if (!$(v).attr('checked'))
|
||||
groupChecked = false;
|
||||
{rdelim});
|
||||
$('.input_group_shop[value='+id_group+']').attr('checked', groupChecked);
|
||||
{rdelim}
|
||||
|
||||
function check_all_shop() {ldelim}
|
||||
var allChecked = true;
|
||||
$('.input_group_shop').each(function(k, v) {ldelim}
|
||||
if (!$(v).attr('checked'))
|
||||
allChecked = false;
|
||||
{rdelim});
|
||||
$('.input_all_shop').attr('checked', allChecked);
|
||||
{rdelim}
|
||||
</script>
|
||||
|
||||
<div class="assoShop">
|
||||
<table class="table" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<th>{if $input.type == 'group_shop'}{l s='Group shop'}{else}{l s='Shop'}{/if}</th>
|
||||
</tr>
|
||||
<tr {if $input.type == 'group_shop'}class="alt_row"{/if}>
|
||||
<td>
|
||||
<label class="t"><input class="input_all_shop" type="checkbox" /> {if $input.type == 'group_shop'}{l s='All group shops'}{else}{l s='All shops'}{/if}</label>
|
||||
</td>
|
||||
</tr>
|
||||
{foreach $input.values as $groupID => $groupData}
|
||||
{if ($input.type == 'group_shop' && ((isset($fields_value.shop[$groupID]) && in_array($form_id, $fields_value.shop[$groupID])) || !$form_id))}
|
||||
{assign var=groupChecked value=true}
|
||||
{else}
|
||||
{assign var=groupChecked value=false}
|
||||
{/if}
|
||||
<tr {if $input.type == 'shop'}class="alt_row"{/if}>
|
||||
<td>
|
||||
<img style="vertical-align:middle;" alt="" src="../img/admin/lv2_b.gif" />
|
||||
<label class="t">
|
||||
<input class="input_group_shop"
|
||||
type="checkbox"
|
||||
name="checkBoxGroupShopAsso_{$table}_{$form_id}_{$groupID}"
|
||||
value="{$groupID}"
|
||||
{if $groupChecked} checked="checked"{/if} />
|
||||
{$groupData['name']}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{if $input.type == 'shop'}
|
||||
{assign var=j value=0}
|
||||
{foreach $groupData['shops'] as $shopID => $shopData}
|
||||
{if ((isset($fields_value.shop[$shopID]) && in_array($form_id, $fields_value.shop[$shopID])) || !$form_id)}
|
||||
{assign var=checked value=true}
|
||||
{else}
|
||||
{assign var=checked value=false}
|
||||
{/if}
|
||||
<tr>
|
||||
<td>
|
||||
<img style="vertical-align:middle;" alt="" src="../img/admin/lv3_{if $j < count($groupData['shops']) - 1}b{else}f{/if}.png" />
|
||||
<label class="child">
|
||||
<input class="input_shop"
|
||||
type="checkbox"
|
||||
value="{$groupID}"
|
||||
name="checkBoxShopAsso_{$table}_{$form_id}_{$shopID}"
|
||||
id="checkedBox_{$shopID}"
|
||||
{if $checked} checked="checked"{/if} />
|
||||
{$shopData['name']}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
{assign var=j value=$j+1}
|
||||
{/foreach}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/add_stock.png" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/add_stock.png" alt="{$action}" />
|
||||
</a>
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9197 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/asterisk.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}" onclick="return confirm('{$confirm}');">
|
||||
<img src="../img/admin/delete.gif" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" onclick="return confirm('{$confirm}');" title="{$action}">
|
||||
<img src="../img/admin/delete.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -55,6 +55,10 @@ $(document).ready(function() {
|
||||
.attr('colspan', $('#details_{$id}').parent().parent().find('td').length)));
|
||||
$.each(data.data, function(it, row)
|
||||
{
|
||||
var bg_color = ''; // Color
|
||||
if (row.color)
|
||||
bg_color = 'style="background:' + row.color +';"';
|
||||
|
||||
var content = $('<tr class="action_details details_{$id} '+(alt_row ? 'alt_row' : '')+'"></tr>');
|
||||
content.append($('<td class="empty"></td>'));
|
||||
var first = true;
|
||||
@@ -69,9 +73,9 @@ $(document).ready(function() {
|
||||
if (typeof(row[it]) == 'undefined')
|
||||
{
|
||||
if (first || count == 0)
|
||||
content.append($('<td class="'+this.align+' empty"></td>'));
|
||||
content.append($('<td class="'+this.align+' empty"' + bg_color + '></td>'));
|
||||
else
|
||||
content.append($('<td class="'+this.align+'"></td>'));
|
||||
content.append($('<td class="'+this.align+'"' + bg_color + '></td>'));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -79,12 +83,12 @@ $(document).ready(function() {
|
||||
if (first)
|
||||
{
|
||||
first = false;
|
||||
content.append($('<td class="'+this.align+' first">'+row[it]+'</td>'));
|
||||
content.append($('<td class="'+this.align+' first"' + bg_color + '>'+row[it]+'</td>'));
|
||||
}
|
||||
else if (count == 0)
|
||||
content.append($('<td class="'+this.align+' last">'+row[it]+'</td>'));
|
||||
content.append($('<td class="'+this.align+' last"' + bg_color + '>'+row[it]+'</td>'));
|
||||
else
|
||||
content.append($('<td class="'+this.align+' '+count+'">'+row[it]+'</td>'));
|
||||
content.append($('<td class="'+this.align+' '+count+'"' + bg_color + '>'+row[it]+'</td>'));
|
||||
}
|
||||
});
|
||||
content.append($('<td class="empty"></td>'));
|
||||
@@ -123,6 +127,6 @@ $(document).ready(function() {
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<a href="#" id="details_{$id}">
|
||||
<img src="../img/admin/more.png" alt="{$action}" title="{$action}" />
|
||||
<a class="pointer" id="details_{$id}" title="{$action}">
|
||||
<img src="../img/admin/more.png" alt="{$action}" />
|
||||
</a>
|
||||
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a class="pointer" onclick="if (confirm('{$confirm}')) document.location = '{$location_ok}'; else document.location = '{$location_ko}';">
|
||||
<img src="../img/admin/duplicate.png" alt="{$action}" title="{$action}" /></a>
|
||||
<a class="pointer" title="{$action}" onclick="if (confirm('{$confirm}')) document.location = '{$location_ok}'; else document.location = '{$location_ko}';">
|
||||
<img src="../img/admin/duplicate.png" alt="{$action}" />
|
||||
</a>
|
||||
@@ -23,6 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}" class="edit">
|
||||
<img src="../img/admin/edit.gif" alt="{$action}" title="{$action}" />
|
||||
<a href="{$href}" class="edit" title="{$action}">
|
||||
<img src="../img/admin/edit.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -24,7 +24,6 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<a href="{$url_enable}" {if isset($confirm)}onclick="return confirm('{$confirm}');"{/if}>
|
||||
<img src="../img/admin/{if $enabled}enabled.gif{else}disabled.gif{/if}"
|
||||
alt="{if $enabled}{l s='Enabled'}{else}{l s='Disabled'}{/if}" title="{if $enabled}{l s='Enabled'}{else}{l s='Disabled'}{/if}" />
|
||||
<a href="{$url_enable}" {if isset($confirm)}onclick="return confirm('{$confirm}');"{/if} title="{if $enabled}{l s='Enabled'}{else}{l s='Disabled'}{/if}">
|
||||
<img src="../img/admin/{if $enabled}enabled.gif{else}disabled.gif{/if}" alt="{if $enabled}{l s='Enabled'}{else}{l s='Disabled'}{/if}" />
|
||||
</a>
|
||||
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/remove_stock.png" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/remove_stock.png" alt="{$action}" />
|
||||
</a>
|
||||
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/delivery.gif" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/delivery.gif" alt="{$action}" />
|
||||
</a>
|
||||
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/cms.gif" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/cms.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -0,0 +1,28 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}" onclick="return confirm('{$confirm}');" title="{$action}">
|
||||
<img src="../img/admin/copy_files.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/delivery.gif" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/delivery.gif" alt="{$action}" />
|
||||
</a>
|
||||
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/transfer_stock.png" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}">
|
||||
<img src="../img/admin/transfer_stock.png" alt="{$action}" />
|
||||
</a>
|
||||
|
||||
@@ -23,5 +23,6 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/details.gif" alt="{$action}" title="{$action}" /></a>
|
||||
<a href="{$href}" title="{$action}" >
|
||||
<img src="../img/admin/details.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -51,7 +51,7 @@
|
||||
{if isset($params.position) && $order_by == 'position'} dragHandle{/if}
|
||||
{if isset($params.align)} {$params.align}{/if}"
|
||||
|
||||
{if (!isset($params.position) && !$no_link)}
|
||||
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
||||
onclick="document.location = '{$current_index}&{$identifier}={$tr.$identifier}{if $view}&view{else}&update{/if}{$table}&token={$token}'">
|
||||
{else}
|
||||
>
|
||||
|
||||
@@ -36,4 +36,6 @@
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="token" value="{$token}" />
|
||||
</form>
|
||||
</form>
|
||||
|
||||
{block name="after"}{/block}
|
||||
@@ -25,7 +25,6 @@
|
||||
*}
|
||||
|
||||
{if !$simple_header}
|
||||
<link href="../css/admin.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
@@ -95,7 +94,7 @@
|
||||
{l s='Page '}<b>{$page}</b> / {$total_pages}
|
||||
{if $page < $total_pages}
|
||||
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1}"/>
|
||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}'').value={$total_pages}"/>
|
||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}').value={$total_pages}"/>
|
||||
{/if}
|
||||
| {l s='Display'}
|
||||
<select name="pagination">
|
||||
@@ -149,6 +148,8 @@
|
||||
<br />
|
||||
<a href="{$currentIndex}&{$identifier}={$id_cat}&{$table}Orderby={$key|urlencode}&{$table}Orderway=desc&token={$token}"><img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" /></a>
|
||||
<a href="{$currentIndex}&{$identifier}={$id_cat}&{$table}Orderby={$key|urlencode}&{$table}Orderway=asc&token={$token}"><img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
|
||||
{else}
|
||||
<br />
|
||||
{/if}
|
||||
</th>
|
||||
{/foreach}
|
||||
@@ -162,7 +163,7 @@
|
||||
</th>
|
||||
{/if}
|
||||
{if $has_actions}
|
||||
<th class="center">{l s='Actions'}</th>
|
||||
<th class="center">{l s='Actions'}<br /> </th>
|
||||
{/if}
|
||||
</tr>
|
||||
{if !$simple_header}
|
||||
|
||||
59
admin-dev/themes/template/helper/required_fields.tpl
Normal file
@@ -0,0 +1,59 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 11256 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<br />
|
||||
<p>
|
||||
<a href="#" onclick="if ($('.requiredFieldsParameters:visible').length == 0) $('.requiredFieldsParameters').slideDown('slow'); else $('.requiredFieldsParameters').slideUp('slow'); return false;"><img src="../img/admin/duplicate.gif" alt="" /> {l s='Set required fields for this section'}</a>
|
||||
</p>
|
||||
<fieldset style="display:none" class="width1 requiredFieldsParameters">
|
||||
<legend>{l s='Required Fields'}</legend>
|
||||
<form name="updateFields" action="{$current}&submitFields=1&token={$token}" method="post">
|
||||
<p>
|
||||
<b>{l s='Select the fields you would like to be required for this section.'}</b><br />
|
||||
<table cellspacing="0" cellpadding="0" class="table width1 clear">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" onclick="checkDelBoxes(this.form, 'fieldsBox[]', this.checked)" class="noborder" name="checkme"></th>
|
||||
<th>{l s='Field Name'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $table_fields as $field}
|
||||
{if !in_array($field, $required_class_fields)}
|
||||
<tr class="{if $irow++ % 2}alt_row{/if}">
|
||||
<td class="noborder"><input type="checkbox" name="fieldsBox[]" value="{$field}" {if in_array($field, $required_fields)} checked="checked"{/if} /></td>
|
||||
<td>{$field}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table><br />
|
||||
<center>
|
||||
<input style="margin-left:15px;" class="button" type="submit" value="{l s=' Save '}" name="submitFields" />
|
||||
</center>
|
||||
</p>
|
||||
</form>
|
||||
</fieldset>
|
||||
@@ -81,5 +81,5 @@
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block name="other_fieldsets"}<div class="clear"> </div>{/block}
|
||||
{block name="after"}<div style="clear:both"> </div>{/block}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
{if count($errors)} {* @todo what is ??? AND $this->_includeContainer *}
|
||||
<div class="error">
|
||||
<span style="float:right"><a id="hideError" href=""><img alt="X" src="../img/admin/close.png" /></a></span><img src="../img/admin/error2.png" />
|
||||
<span style="float:right"><a id="hideError" href=""><img alt="X" src="../img/admin/close.png" /></a></span>
|
||||
{if count($errors) == 1}
|
||||
{$errors[0]}
|
||||
{else}
|
||||
@@ -78,17 +78,16 @@
|
||||
<span style="float:right">
|
||||
<a id="hideWarn" href=""><img alt="X" src="../img/admin/close.png" /></a>
|
||||
</span>
|
||||
<img src="../img/admin/warn2.png" />
|
||||
{if count($warnings) > 1}
|
||||
{l s='There are'} {count($warnings)} {l s='warnings'}
|
||||
<span style="margin-left:20px;" id="labelSeeMore">
|
||||
<a id="linkSeeMore" href="#" style="text-decoration:underline">{l s='Click here to see more'}</a>
|
||||
<a id="linkHide" href="#" style="text-decoration:underline;display:none">{l s='Hide warning'}</a>
|
||||
</span>
|
||||
{else}
|
||||
{l s='There is'} {count($warnings)} {l s='warning'}
|
||||
{l s='There is'} {count($warnings)} {l s='warning'} :
|
||||
{/if}
|
||||
<span style="margin-left:20px;" id="labelSeeMore">
|
||||
<a id="linkSeeMore" href="#" style="text-decoration:underline">{l s='Click here to see more'}</a>
|
||||
<a id="linkHide" href="#" style="text-decoration:underline;display:none">{l s='Hide warning'}</a>
|
||||
</span>
|
||||
<ul style="display:none;" id="seeMore">
|
||||
<ul style="display:{if count($warnings) > 1}none{else}block{/if};" id="seeMore">
|
||||
{foreach $warnings as $warning}
|
||||
<li>{$warning}</li>
|
||||
{/foreach}
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
<p><span>{l s='For security reasons, you cannot connect to the Back Office until after you have:'}<br /><br />
|
||||
<ul>
|
||||
<li>{l s='delete the /install folder'}</li>
|
||||
<li>{l s='delete the /install-new folder'}</li>
|
||||
<li>{l s='renamed the /admin folder (eg.) /admin'}{$randomNb}</li>
|
||||
</ul>
|
||||
<br />{l s='Please then access this page by the new url (eg.) http://www.domain.tld/admin'}{$randomNb}</span></p>
|
||||
@@ -100,4 +101,4 @@
|
||||
</form>
|
||||
</div>
|
||||
<h2><a href="http://www.prestashop.com">© Copyright by PrestaShop. all rights reserved.</a></h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<fieldset>
|
||||
<legend>{l s='Severity levels'}</legend>
|
||||
<p>{l s='Meaning of severity levels:'}</p>
|
||||
<ol>
|
||||
<ol style="margin-left: 30px; list-style-type: decimal;">
|
||||
<li style="color: green;">{l s='Informative only'}</li>
|
||||
<li style="color: orange;">{l s='Warning'}</li>
|
||||
<li style="color: orange;">{l s='Error'}</li>
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
{block name="override_tpl"}
|
||||
|
||||
<h2>{$manufacturer->name}</h2>
|
||||
|
||||
|
||||
<h3>{l s='Total addresses:'} {count($addresses)}</h3>
|
||||
<hr />
|
||||
|
||||
|
||||
{if !count($addresses)}
|
||||
{l s='No address for this manufacturer'}
|
||||
{else}
|
||||
@@ -61,7 +61,7 @@
|
||||
{/foreach}
|
||||
{/if}
|
||||
<br /><br />
|
||||
|
||||
|
||||
<h3>{l s='Total products:'} {count($products)}</h3>
|
||||
{foreach $products AS $product}
|
||||
<hr />
|
||||
@@ -70,7 +70,7 @@
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}" class="button">{l s='Edit'}</a>
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&deleteproduct&token={getAdminToken tab='AdminProducts'}" class="button" onclick="return confirm('{l s='Delete item #'}{$product->id} ?');">{l s='Delete'}</a>
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:990px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:80%;margin-left:10%;">
|
||||
<tr>
|
||||
<th>{$product->name}</th>
|
||||
{if !empty($product->reference)}<th width="150">{l s='Ref:'} {$product->reference}</th>{/if}
|
||||
@@ -85,13 +85,13 @@
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&deleteproduct&token={getAdminToken tab='AdminProducts'}" class="button" onclick="return confirm('{l s='Delete item #'}{$product->id} ?');">{l s='Delete'}</a>
|
||||
</div>
|
||||
<h3><a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}">{$product->name}</a></h3>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:990px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:80%;margin-left:10%;">
|
||||
<tr>
|
||||
<th>{l s='Attribute name'}</th>
|
||||
<th width="80">{l s='Reference'}</th>
|
||||
<th width="80">{l s='EAN13'}</th>
|
||||
<th width="80">{l s='UPC'}</th>
|
||||
{if $stock_management}<th class="right" width="40">{l s='Quantity'}</th>{/if}
|
||||
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<th class="right" width="150">{l s='Available Quantity'}</th>{/if}
|
||||
</tr>
|
||||
{foreach $product->combinaison AS $id_product_attribute => $product_attribute}
|
||||
<tr {if $id_product_attribute %2}class="alt_row"{/if} >
|
||||
@@ -99,7 +99,7 @@
|
||||
<td>{$product_attribute.reference}</td>
|
||||
<td>{$product_attribute.ean13}</td>
|
||||
<td>{$product_attribute.upc}</td>
|
||||
{if $stock_management}<td class="right">{$product_attribute.quantity}</td>{/if}
|
||||
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<td class="right">{$product_attribute.quantity}</td>{/if}
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<div class="select-filter">
|
||||
<label class="search-filter">{l s='Sort by'}:</label>
|
||||
|
||||
<select name="module_type">
|
||||
<select name="module_type" id="module_type_filter">
|
||||
<option value="allModules" {if $showTypeModules eq 'allModules'}selected="selected"{/if}>{l s='All Modules'}</option>
|
||||
<option value="nativeModules" {if $showTypeModules eq 'nativeModules'}selected="selected"{/if}>{l s='Native Modules'}</option>
|
||||
<option value="partnerModules" {if $showTypeModules eq 'partnerModules'}selected="selected"{/if}>{l s='Partners Modules'}</option>
|
||||
@@ -49,19 +49,19 @@
|
||||
<option value="otherModules" {if $showTypeModules eq 'otherModules'}selected="selected"{/if}>{l s='Others Modules'}</option>
|
||||
</select>
|
||||
|
||||
<select name="module_install">
|
||||
<select name="module_install" id="module_install_filter">
|
||||
<option value="installedUninstalled" {if $showInstalledModules eq 'installedUninstalled'}selected="selected"{/if}>{l s='Installed & Uninstalled'}</option>
|
||||
<option value="installed" {if $showInstalledModules eq 'installed'}selected="selected"{/if}>{l s='Installed Modules'}</option>
|
||||
<option value="uninstalled" {if $showInstalledModules eq 'uninstalled'}selected="selected"{/if}>{l s='Uninstalled Modules'}</option>
|
||||
</select>
|
||||
|
||||
<select name="module_status">
|
||||
<select name="module_status" id="module_status_filter">
|
||||
<option value="enabledDisabled" {if $showEnabledModules eq 'enabledDisabled'}selected="selected"{/if}>{l s='Enabled & Disabled'}</option>
|
||||
<option value="enabled" {if $showEnabledModules eq 'enabled'}selected="selected"{/if}>{l s='Enabled Modules'}</option>
|
||||
<option value="disabled" {if $showEnabledModules eq 'disabled'}selected="selected"{/if}>{l s='Disabled Modules'}</option>
|
||||
</select>
|
||||
|
||||
<select name="country_module_value">
|
||||
<select name="country_module_value" id="country_module_value_filter">
|
||||
<option value="0" >{l s='All countries'}</option>
|
||||
<option value="1" {if $showCountryModules eq 1}selected="selected"{/if}>{l s='Current country:'} {$nameCountryDefault}</option>
|
||||
</select>
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
<li>
|
||||
<a id="desc-module-new" class="toolbar_btn" href="#top_container" onclick="$('#module_install').slideToggle();" title="Add new">
|
||||
<span class="process-icon-new-module" ></span>
|
||||
<div>Add new module</div>
|
||||
<div>{l s='Add new module'}</div>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a id="desc-module-addon-new" class="toolbar_btn" href="{$addonsUrl}" title="Add new">
|
||||
<span class="process-icon-new-module-addon" ></span>
|
||||
<div>Add new via Addons</div>
|
||||
<div>{l s='Add new via Addons'}</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -36,14 +36,13 @@
|
||||
var ajaxCurrentIndex = '{$ajaxCurrentIndex}';
|
||||
var by = '{l s='by'}';
|
||||
var errorLogin = '{l s='Could not login to Addons'}';
|
||||
|
||||
{if isset($smarty.get.anchor)}
|
||||
$('document').ready( function() {
|
||||
$.scrollTo('#{$smarty.get.anchor|htmlentities}', 1200, {literal}{offset: -100}{/literal});
|
||||
});
|
||||
{/if}
|
||||
{if isset($smarty.get.anchor)}var anchor = '{$smarty.get.anchor|htmlentities|replace:'(':''|replace:')':''|replace:'{':''|replace:'}':''}';{else}var anchor = '';{/if}
|
||||
|
||||
|
||||
|
||||
|
||||
{literal}
|
||||
|
||||
function getPrestaStore(){if(getE("prestastore").style.display!='block')return;$.post(dirNameCurrentIndex+"/ajax.php",{page:"prestastore"},function(a){getE("prestastore-content").innerHTML=a;})}
|
||||
function truncate_author(author){return ((author.length > 20) ? author.substring(0, 20)+"..." : author);}
|
||||
function modules_management(action)
|
||||
@@ -65,7 +64,19 @@
|
||||
}
|
||||
document.location.href=currentIndex+'&token='+token+'&'+action+'='+module_list.substring(1, module_list.length);
|
||||
}
|
||||
|
||||
|
||||
$('document').ready( function() {
|
||||
|
||||
|
||||
|
||||
// ScrollTo
|
||||
if (anchor != '')
|
||||
$.scrollTo('#'+anchor, 1200, {offset: -100});
|
||||
|
||||
|
||||
|
||||
// AutoComplete Search
|
||||
$('input[name="filtername"]').autocomplete(moduleList, {
|
||||
minChars: 0,
|
||||
width: 310,
|
||||
@@ -84,13 +95,30 @@
|
||||
$('input[name="filtername"]').result(function(event, data, formatted) {
|
||||
$('#filternameForm').submit();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Method to check / uncheck all modules checkbox
|
||||
$('#checkme').click(function()
|
||||
{
|
||||
if ($(this).attr("rel") == 'false')
|
||||
{
|
||||
$(this).attr("checked", "checked");
|
||||
$(this).attr("rel", "true");
|
||||
$("input[name=modules]").attr("checked", "checked");
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).attr("checked", "");
|
||||
$(this).attr("rel", "false");
|
||||
$("input[name=modules]").attr("checked", "");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// Method to reload filter in ajax
|
||||
$(document).ready(function(){
|
||||
// Method to reload filter in ajax
|
||||
$('.categoryModuleFilterLink').click(function()
|
||||
{
|
||||
$('.categoryModuleFilterLink').css('background-color', 'white');
|
||||
@@ -125,25 +153,22 @@
|
||||
catch(e){}
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// Method to get modules_list.xml from prestashop.com and default_country_modules_list.xml from addons.prestashop.com
|
||||
$(document).ready(function(){
|
||||
try
|
||||
{
|
||||
resAjax = $.ajax({
|
||||
type:"POST",
|
||||
url : ajaxCurrentIndex,
|
||||
async: true,
|
||||
data : {
|
||||
ajaxMode : "1",
|
||||
ajax : "1",
|
||||
token : token,
|
||||
controller : "AdminModules",
|
||||
action : "refreshModuleList"
|
||||
// Method to get modules_list.xml from prestashop.com and default_country_modules_list.xml from addons.prestashop.com
|
||||
try
|
||||
{
|
||||
resAjax = $.ajax({
|
||||
type:"POST",
|
||||
url : ajaxCurrentIndex,
|
||||
async: true,
|
||||
data : {
|
||||
ajaxMode : "1",
|
||||
ajax : "1",
|
||||
token : token,
|
||||
controller : "AdminModules",
|
||||
action : "refreshModuleList"
|
||||
},
|
||||
success : function(res,textStatus,jqXHR)
|
||||
{
|
||||
@@ -155,12 +180,11 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
catch(e){}
|
||||
});
|
||||
catch(e) { }
|
||||
|
||||
|
||||
// Method to log on PrestaShop Addons WebServices
|
||||
$(document).ready(function(){
|
||||
|
||||
// Method to log on PrestaShop Addons WebServices
|
||||
$('#addons_login_button').click(function()
|
||||
{
|
||||
var username_addons = $("#username_addons").val();
|
||||
@@ -204,6 +228,55 @@
|
||||
catch(e){}
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Method to set filter on modules
|
||||
function setFilter()
|
||||
{
|
||||
var module_type = $("#module_type_filter").val();
|
||||
var module_install = $("#module_install_filter").val();
|
||||
var module_status = $("#module_status_filter").val();
|
||||
var country_module_value = $("#country_module_value_filter").val();
|
||||
try
|
||||
{
|
||||
resAjax = $.ajax({
|
||||
type:"POST",
|
||||
url : ajaxCurrentIndex,
|
||||
async: true,
|
||||
data : {
|
||||
ajax : "1",
|
||||
token : token,
|
||||
controller : "AdminModules",
|
||||
action : "setFilter",
|
||||
module_type : module_type,
|
||||
module_install : module_install,
|
||||
module_status : module_status,
|
||||
country_module_value : country_module_value,
|
||||
filterModules : 'Filter'
|
||||
},
|
||||
success : function(data)
|
||||
{
|
||||
// res.status = cache or refresh
|
||||
if (data == 'OK')
|
||||
window.location.href = window.location.href;
|
||||
},
|
||||
error: function(res,textStatus,jqXHR)
|
||||
{
|
||||
//alert("TECHNICAL ERROR"+res);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch(e){}
|
||||
return false;
|
||||
}
|
||||
$('#module_type_filter').change(function() { setFilter(); });
|
||||
$('#module_install_filter').change(function() { setFilter(); });
|
||||
$('#module_status_filter').change(function() { setFilter(); });
|
||||
$('#country_module_value_filter').change(function() { setFilter(); });
|
||||
|
||||
|
||||
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
|
||||
@@ -33,11 +33,7 @@
|
||||
<thead>
|
||||
<tr class="nodrag nodrop">
|
||||
<th class="center">
|
||||
<input type="checkbox" onclick="" class="noborder" name="checkme"><br>
|
||||
<!-- TODO
|
||||
<a href="#"><img border="0" src="../img/admin/down.gif"></a>
|
||||
<a href="#"><img border="0" src="../img/admin/up_d.gif"></a>
|
||||
-->
|
||||
<input type="checkbox" rel="false" class="noborder" id="checkme"><br>
|
||||
</th>
|
||||
<th class="center"></th>
|
||||
<th>{l s='Module name'}</th>
|
||||
@@ -46,7 +42,7 @@
|
||||
<tbody>
|
||||
{foreach from=$modules item=module}
|
||||
<tr>
|
||||
<td><input type="checkbox" name="modules" value="{$module->name}" class="noborder"></td>
|
||||
<td><input type="checkbox" name="modules" value="{$module->name}" {if !isset($module->confirmUninstall) OR empty($module->confirmUninstall)}rel="false"{else}rel="{$module->confirmUninstall|addslashes}"{/if} class="noborder"></td>
|
||||
<td><img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}"></td>
|
||||
<td>
|
||||
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
||||
@@ -70,11 +66,11 @@
|
||||
<p class="desc">{l s='Description'} : {$module->description}</p>
|
||||
{if isset($module->message)}<div class="conf">{$module->message}</div>{/if}
|
||||
<div class="row-actions-module">
|
||||
{$module->optionsHtml}
|
||||
{if !isset($module->not_on_disk)}{$module->optionsHtml}{else} {/if}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><a href="{if isset($module->id) && $module->id gt 0}{$module->options.uninstall_url}{else}{$module->options.install_url}{/if}" class="button installed"><span>{if isset($module->id) && $module->id gt 0}{l s='Uninstall'}{else}{l s='Install'}{/if}</span></a></td>
|
||||
<td><a {if isset($module->id) && $module->id gt 0 && !empty($module->options.uninstall_onclick)}onclick="{$module->options.uninstall_onclick}"{/if} href="{if isset($module->id) && $module->id gt 0}{$module->options.uninstall_url}{else}{$module->options.install_url}{/if}" class="button installed"><span>{if isset($module->id) && $module->id gt 0}{l s='Uninstall'}{else}{l s='Install'}{/if}</span></a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
|
||||
@@ -48,6 +48,12 @@
|
||||
|
||||
<div id="moduleContainer">
|
||||
{include file='modules/list.tpl'}
|
||||
{if count($modules)}
|
||||
<div style="margin-top: 12px;">
|
||||
<input type="button" class="button big" value="Install the selection" onclick="modules_management('install')"/>
|
||||
<input type="button" class="button big" value="Uninstall the selection" onclick="modules_management('uninstall')" />
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="filter-module">
|
||||
<form>
|
||||
{l s='Show'} :
|
||||
<select id="show_modules" onChange="autoUrl('show_modules', '{$url_show_modules}')">
|
||||
@@ -58,17 +59,19 @@
|
||||
<input type="checkbox" id="hook_position" onclick="autoUrlNoList('hook_position', '{$url_show_invisible}')" {if $hook_position}checked="checked"{/if} />
|
||||
<label class="t" for="hook_position">{l s='Display non-positionable hook'}</label>
|
||||
</form>
|
||||
</div>
|
||||
<br/>
|
||||
<div>
|
||||
|
||||
<fieldset style="width:250px;float:right"><legend>{l s='Live edit'}</legend>
|
||||
<div id="modulePosition">
|
||||
<div class="blocLiveEdit"><h2>{l s='Live edit'}</h2>
|
||||
{if $live_edit}
|
||||
<p>{l s='You have to select a shop to use live edit'}</p>
|
||||
{else}
|
||||
<p>{l s='By clicking here you will be redirected to the front office of your shop to move and delete modules directly.'}</p>
|
||||
<br>
|
||||
<a href="{$url_live_edit}" target="_blank" class="button">{l s='Run LiveEdit'}</a>
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
<form method="post" action="{$url_submit}">
|
||||
<div id="unhook_button_position_top">
|
||||
<input class="button floatr" type="submit" name="unhookform" value="{l s='Unhook the selection'}"/></div>
|
||||
@@ -78,21 +81,30 @@
|
||||
{/if}
|
||||
{foreach $hooks as $hook}
|
||||
<a name="{$hook['name']}"/>
|
||||
<table cellpadding="0" cellspacing="0" class="table width3 space {if $hook['module_count'] >= 2} tableDnD{/if}" id="{$hook['id_hook']}">
|
||||
<tr class="nodrag nodrop"><th colspan="4">{$hook['title']} - <span style="color: red">{$hook['module_count']}</span> {if $hook['module_count'] > 1}{l s='modules'}{else}{l s='module'}{/if}
|
||||
{if $hook['module_count'] && $can_move}
|
||||
<input type="checkbox" id="Ghook{$hook['id_hook']}" class="floatr" style="margin-right: 2px;" onclick="hookCheckboxes({$hook['id_hook']}, 0, this)"/>
|
||||
{/if}
|
||||
<table cellpadding="0" cellspacing="0" class="table widthfull space {if $hook['module_count'] >= 2} tableDnD{/if}" id="{$hook['id_hook']}">
|
||||
<colgroup>
|
||||
<col width="10"></col>
|
||||
<col width="30"></col>
|
||||
<col width="40"></col>
|
||||
<col width=""></col>
|
||||
<col width="50"></col>
|
||||
</colgroup>
|
||||
<tr class="nodrag nodrop"><th colspan="5"> {if $hook['module_count'] && $can_move}
|
||||
<input type="checkbox" id="Ghook{$hook['id_hook']}" style="margin-right: 2px;" onclick="hookCheckboxes({$hook['id_hook']}, 0, this)"/>
|
||||
{/if}{$hook['title']} - <span style="color: red">{$hook['module_count']}</span> {if $hook['module_count'] > 1}{l s='modules'}{else}{l s='module'}{/if}
|
||||
|
||||
{if !empty($hook['description'])}
|
||||
<span style="font-size:0.8em; font-weight: normal">[{$hook['description']}]</span>
|
||||
{/if}
|
||||
<sub style="color:grey;"><i>({l s='Technical name: '}{$hook['name']})</i></sub></th></tr>
|
||||
<span style="color:grey;">({l s='Technical name: '}{$hook['name']})</span></th></tr>
|
||||
{if $hook['module_count']}
|
||||
{foreach $hook['modules'] as $position => $module}
|
||||
{if isset($module['instance'])}
|
||||
<tr id="{$hook['id_hook']}_{$module['instance']->id}" {cycle values='class="alt_row",'} style="height: 42px;">
|
||||
<td align=center ><input type="checkbox" id="mod{$hook['id_hook']}_{$module['instance']->id}" class="hook{$hook['id_hook']}" onclick="hookCheckboxes({$hook['id_hook']}, 1, this)" name="unhooks[]" value="{$hook['id_hook']}_{$module['instance']->id}"/></td>
|
||||
{if !$display_key}
|
||||
<td class="positions" width="40">{$module@iteration}</td>
|
||||
<td {if $can_move && $hook['module_count'] >= 2} class="dragHandle"{/if} id="td_{$hook['id_hook']}_{$module['instance']->id}" width="40">
|
||||
<td align=center class="positions">{$module@iteration}</td>
|
||||
<td {if $can_move && $hook['module_count'] >= 2} align=center class="dragHandle"{/if} id="td_{$hook['id_hook']}_{$module['instance']->id}">
|
||||
{if $can_move}
|
||||
<a {if {$module@iteration} == 1} style="display: none;"{/if} href="{$current}&id_module={$module['instance']->id}&id_hook={$hook['id_hook']}&direction=0&token={$token}&changePosition#{$hook['name']}">
|
||||
<img src="../img/admin/up.gif" alt="{l s='Up'}" title="{l s='Up'}" />
|
||||
@@ -102,27 +114,31 @@
|
||||
</a>
|
||||
{/if}
|
||||
</td>
|
||||
<td style="padding-left: 10px;"><label class="lab_modules_positions" for="mod{$hook['id_hook']}_{$module['instance']->id}">
|
||||
<td><div class="lab_modules_positions" for="mod{$hook['id_hook']}_{$module['instance']->id}">
|
||||
{else}
|
||||
<td style="padding-left: 10px;" colspan="3"><label class="lab_modules_positions" for="mod{$hook['id_hook']}_{$module['instance']->id}">
|
||||
<td colspan="3"><div class="lab_modules_positions" for="mod{$hook['id_hook']}_{$module['instance']->id}">
|
||||
{/if}
|
||||
<img src="../modules/{$module['instance']->name}/logo.gif" alt="{$module['instance']->name|stripslashes}" /> <strong>{$module['instance']->displayName|stripslashes}</strong>
|
||||
{if $module['instance']->version} v{if $module['instance']->version|intval == $module['instance']->version}{sprintf('%.1f', $module['instance']->version)}{else}{$module['instance']->version|floatval}{/if}{/if}<br />{$module['instance']->description}
|
||||
</label></td>
|
||||
<td width="60">
|
||||
<img src="../modules/{$module['instance']->name}/logo.png" alt="{$module['instance']->name|stripslashes}" /> <h3>{$module['instance']->displayName|stripslashes}</h3>
|
||||
<span>{if $module['instance']->version}v{if $module['instance']->version|intval == $module['instance']->version}{sprintf('%.1f', $module['instance']->version)}{else}{$module['instance']->version|floatval}{/if}{/if}</span><p>{$module['instance']->description}</p>
|
||||
</div></td>
|
||||
<td>
|
||||
<a href="{$current}&id_module={$module['instance']->id}&id_hook={$hook['id_hook']}&editGraft{if $display_key}&show_modules={$display_key}{/if}&token={$token}">
|
||||
<img src="../img/admin/edit.gif" border="0" alt="{l s='Edit'}" title="{l s='Edit'}" />
|
||||
</a>
|
||||
<a href="{$current}&id_module={$module['instance']->id}&id_hook={$hook['id_hook']}&deleteGraft{if $display_key}&show_modules={$display_key}{/if}&token={$token}">
|
||||
<img src="../img/admin/delete.gif" border="0" alt="{l s='Delete'}" title="{l s='Delete'}" />
|
||||
</a>
|
||||
<input type="checkbox" id="mod{$hook['id_hook']}_{$module['instance']->id}" class="hook{$hook['id_hook']}" onclick="hookCheckboxes({$hook['id_hook']}, 1, this)" name="unhooks[]" value="{$hook['id_hook']}_{$module['instance']->id}"/>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
<tr><td colspan="4">{l s='No module for this hook'}</td></tr>
|
||||
<tr><td colspan="5">{l s='No module for this hook'}</td></tr>
|
||||
{/if}
|
||||
</table>
|
||||
{/foreach}
|
||||
<div id="unhook_button_position_bottom"><input class="button floatr" type="submit" name="unhookform" value="{l s='Unhook the selection'}"/></div></form>
|
||||
<div id="unhook_button_position_bottom"><input class="button floatr" type="submit" name="unhookform" value="{l s='Unhook the selection'}"/></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -87,7 +87,7 @@
|
||||
<input type="hidden" name="totalQty" id="totalQty" value="{$customization['quantity']}" />
|
||||
<input type="hidden" name="productName" id="productName" value="{$product['product_name']}" />
|
||||
{if ((!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN')) && (int)(($customization['quantity_returned']) < (int)($customization['quantity'])))}
|
||||
<input type="checkbox" name="id_customization[{$customizationId}]" id="id_customization[{$customizationId}]" value="{$product['id_order_detail']}" onchange="setCancelQuantity(this, '{$customizationId}', '{$customization['quantity']}')" '.{if (($customization['quantity_returned'] + $customization['quantity_refunded']) >= $customization['quantity'])}disabled="disabled"{/if} />
|
||||
<input type="checkbox" name="id_customization[{$customizationId}]" id="id_customization[{$customizationId}]" value="{$product['id_order_detail']}" onchange="setCancelQuantity(this, '{$customizationId}', '{$customization['quantity'] - $customization['quantity_refunded']}')" '.{if (($customization['quantity_returned'] + $customization['quantity_refunded']) >= $customization['quantity'])}disabled="disabled"{/if} />
|
||||
{else}
|
||||
--
|
||||
{/if}
|
||||
@@ -106,4 +106,4 @@
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
52
admin-dev/themes/template/orders/_discount_form.tpl
Normal file
@@ -0,0 +1,52 @@
|
||||
<form method="POST" action="{$currentIndex}&viewOrder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||
<label>{l s='Name'}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="discount_name" value="" />
|
||||
</div>
|
||||
|
||||
<label>{l s='Type'}</label>
|
||||
<div class="margin-form">
|
||||
<select name="discount_type" id="discount_type">
|
||||
<option value="1">{l s='Percent'}</option>
|
||||
<option value="2">{l s='Amount'}</option>
|
||||
<option value="3">{l s='Free shipping'}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div id="discount_value_field">
|
||||
<label>{l s='Value'}</label>
|
||||
<div class="margin-form">
|
||||
{if ($currency->format % 2)}
|
||||
<span id="discount_currency_sign" style="display: none;">{$currency->sign}</span>
|
||||
{/if}
|
||||
<input type="text" name="discount_value" size="3" />
|
||||
{if !($currency->format % 2)}
|
||||
<span id="discount_currency_sign" style="display: none;">{$currency->sign}</span>
|
||||
{/if}
|
||||
<span id="discount_percent_symbol">%</span>
|
||||
<p class="preference_description" id="discount_value_help" style="width: 95%;display: none;">
|
||||
{l s='This value must be taxes included.'}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $order->hasInvoice()}
|
||||
<label>{l s='Invoice'}</label>
|
||||
<div class="margin-form">
|
||||
<select name="discount_invoice">
|
||||
{foreach from=$invoices_collection item=invoice}
|
||||
<option value="{$invoice->id}" selected="selected">{$invoice->getInvoiceNumberFormatted($current_id_lang)} - {displayPrice price=$invoice->total_paid_tax_incl currency=$order->id_currency}</option>
|
||||
{/foreach}
|
||||
</select><br />
|
||||
<input type="checkbox" name="discount_all_invoices" id="discount_all_invoices" value="1" /> <label class="t" for="discount_all_invoices">{l s='Apply on all invoices'}</label>
|
||||
<p class="preference_description" style="width: 95%">
|
||||
{l s='If you select to create this discount for all invoices, one discount will be created per order invoice.'}
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<p class="center">
|
||||
<input class="button" type="submit" name="submitNewVoucher" value="{l s='Add'}" />
|
||||
<a href="#" id="cancel_add_voucher">{l s='Cancel'}</a>
|
||||
</p>
|
||||
</form>
|
||||
102
admin-dev/themes/template/orders/_documents.tpl
Normal file
@@ -0,0 +1,102 @@
|
||||
<table class="table" width="100%;" cellspacing="0" cellpadding="0" id="documents_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%">{l s='Date'}</th>
|
||||
<th style="width:25%">{l s='Document'}</th>
|
||||
<th style="width:20%">{l s='Number'}</th>
|
||||
<th>{l s='Amount'}</th>
|
||||
<th style="width:42px"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getDocuments() item=document}
|
||||
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
{if isset($document->is_delivery)}
|
||||
<tr class="invoice_line" id="delivery_{$document->id}">
|
||||
{else}
|
||||
<tr class="invoice_line" id="invoice_{$document->id}">
|
||||
{/if}
|
||||
{elseif get_class($document) eq 'OrderSlip'}
|
||||
<tr class="invoice_line" id="orderslip_{$document->id}">
|
||||
{/if}
|
||||
|
||||
<td class="document_date">{dateFormat date=$document->date_add}</td>
|
||||
<td class="document_type">
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
{if isset($document->is_delivery)}
|
||||
{l s='Delivery slip'}
|
||||
{else}
|
||||
{l s='Invoice'}
|
||||
{/if}
|
||||
{elseif get_class($document) eq 'OrderSlip'}
|
||||
{l s='Credit Slip'}
|
||||
{/if}</td>
|
||||
<td class="document_number">
|
||||
<a target="_blank" href="
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
pdf.php?{if isset($document->is_delivery)}delivery{else}pdf{/if}&id_order_invoice={$document->id}
|
||||
{elseif get_class($document) eq 'OrderSlip'}
|
||||
pdf.php?id_order_slip={$document->id}
|
||||
{/if}">
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
{if isset($document->is_delivery)}
|
||||
#{Configuration::get('PS_DELIVERY_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->delivery_number}
|
||||
{else}
|
||||
{$document->getInvoiceNumberFormatted($current_id_lang)}
|
||||
{/if}
|
||||
{elseif get_class($document) eq 'OrderSlip'}
|
||||
{l s='#'}{'%06d'|sprintf:$document->id}
|
||||
{/if} <img src="../img/admin/details.gif" alt="{l s='See the document'}" /></a></td>
|
||||
<td class="document_amount">
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
{if isset($document->is_delivery)}
|
||||
--
|
||||
{else}
|
||||
{displayPrice price=$document->total_paid_tax_incl currency=$currency->id}
|
||||
{if $document->getRestPaid()}
|
||||
<span style="color:red;font-weight:bold;">({displayPrice price=$document->getRestPaid() currency=$currency->id} {l s='not paid'})</span>
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
<td class="right document_action">
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
{if !isset($document->is_delivery)}
|
||||
{if $document->getRestPaid()}
|
||||
<a href="#" class="js-set-payment" data-amount="{$document->getRestPaid()}" data-id-invoice="{$document->id}" title="{l s='Set payment form'}"><img src="../img/admin/money_add.png" alt="{l s='Set payment form'}" /></a>
|
||||
{/if}
|
||||
<a href="#" onclick="$('#invoiceNote{$document->id}').show(); return false;" title="{if $document->note eq ''}{l s='Add note'}{else}{l s='Edit note'}{/if}"><img src="../img/admin/note.png" alt="{if $document->note eq ''}{l s='Add note'}{else}{l s='Edit note'}{/if}"{if $document->note eq ''} class="js-disabled-action"{/if} /></a>
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{if get_class($document) eq 'OrderInvoice'}
|
||||
{if !isset($document->is_delivery)}
|
||||
<tr id="invoiceNote{$document->id}" style="display:none" class="current-edit">
|
||||
<td colspan="5">
|
||||
<form action="{$currentIndex}&viewOrder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}" method="post">
|
||||
<p>
|
||||
<label for="editNote{$document->id}" class="t">{l s='Note'}</label>
|
||||
<input type="hidden" name="id_order_invoice" value="{$document->id}" />
|
||||
<textarea name="note" rows="10" cols="10" id="editNote{$document->id}" class="edit-note">{$document->note|escape:'htmlall':'UTF-8'}</textarea>
|
||||
</p>
|
||||
<p class="right">
|
||||
<input type="submit" name="submitEditNote" value="{l s='Save'}" class="button" />
|
||||
<a href="#" id="cancelNote" onclick="$('#invoiceNote{$document->id}').hide();return false;">{l s='Cancel'}</a>
|
||||
</p>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/if}
|
||||
{foreachelse}
|
||||
<tr>
|
||||
<td colspan="5" class="center">
|
||||
<h3>{l s='No document is available'}</h3>
|
||||
<p><a class="button" href="{$currentIndex}&viewOrder&submitGenerateInvoice&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">{l s='Generate invoice'}</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -5,6 +5,10 @@
|
||||
<div id="add_product_product_attribute_area" style="margin-top: 5px;display: none;">
|
||||
{l s='Combinations:'} <select name="add_product[product_attribute_id]" id="add_product_product_attribute_id"></select>
|
||||
</div>
|
||||
<div id="add_product_product_warehouse_area" style="margin-top: 5px; display: none;">
|
||||
{l s='Warehouse:'} <select id="add_product_warehouse" name="add_product_warehouse">
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
<td style="display:none;">
|
||||
{if $currency->sign % 2}{$currency->sign}{/if}<input type="text" name="add_product[product_price_tax_excl]" id="add_product_product_price_tax_excl" value="" size="4" disabled="disabled" /> {if !($currency->sign % 2)}{$currency->sign}{/if} {l s='tax excl.'}<br />
|
||||
@@ -16,11 +20,11 @@
|
||||
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
||||
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
||||
<td style="display:none;" align="center" colspan="2">
|
||||
{if $order->valid}
|
||||
{if sizeof($invoices_collection)}
|
||||
<select name="add_product[invoice]" id="add_product_product_invoice" disabled="disabled">
|
||||
<optgroup label="{l s='Existing'}">
|
||||
<optgroup class="existing" label="{l s='Existing'}">
|
||||
{foreach from=$invoices_collection item=invoice}
|
||||
<option value="{$invoice->id}">#{Configuration::get('PS_INVOICE_PREFIX', $current_id_lang)}{'%06d'|sprintf:$invoice->number}</option>
|
||||
<option value="{$invoice->id}">{$invoice->getInvoiceNumberFormatted($current_id_lang)}</option>
|
||||
{/foreach}
|
||||
</optgroup>
|
||||
<optgroup label="{l s='New'}">
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
{* Generate HTML code for printing Invoice Icon with link *}
|
||||
<span style="width:20px; margin-right:5px;">
|
||||
{if (($order_state->invoice && $order->invoice_number) && $tr['product_number'])}
|
||||
<a href="pdf.php?id_order={$order->id}&pdf"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
||||
<a target="_blank" href="pdf.php?id_order={$order->id}&pdf"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
||||
{else}
|
||||
-
|
||||
{/if}
|
||||
@@ -36,7 +36,7 @@
|
||||
{* Generate HTML code for printing Delivery Icon with link *}
|
||||
<span style="width:20px;">
|
||||
{if ($order_state->delivery && $order->delivery_number)}
|
||||
<a href="pdf.php?id_delivery={$order->delivery_number}"><img src="../img/admin/delivery.gif" alt="delivery" /></a>
|
||||
<a target="_blank" href="pdf.php?id_order={$order->id}&delivery"><img src="../img/admin/delivery.gif" alt="delivery" /></a>
|
||||
{else}
|
||||
-
|
||||
{/if}
|
||||
|
||||
@@ -59,12 +59,12 @@
|
||||
</td>
|
||||
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['product_quantity_refunded']}</td>{/if}
|
||||
{if ($order->hasBeenDelivered())}<td align="center" class="productQuantity">{$product['product_quantity_return']}</td>{/if}
|
||||
<td align="center" class="productQuantity product_stock">{StockManagerFactory::getManager()->getProductRealQuantities($product['product_id'], $product['product_attribute_id'], null, true)}</td>
|
||||
<td align="center" class="productQuantity product_stock">{$product['current_stock']}</td>
|
||||
<td align="center" class="total_product">
|
||||
{displayPrice price=(Tools::ps_round($product_price, 2) * ($product['product_quantity'] - $product['customizationQuantityTotal'])) currency=$currency->id}
|
||||
</td>
|
||||
<td colspan="2" style="display: none;" class="add_product_fields"> </th>
|
||||
<td align="center" class="cancelCheck standard_refund_fields" style="background-color:rgb(232, 237, 194);display:none">
|
||||
<td align="center" class="cancelCheck standard_refund_fields current-edit" style="display:none">
|
||||
<input type="hidden" name="totalQtyReturn" id="totalQtyReturn" value="{$product['product_quantity_return']}" />
|
||||
<input type="hidden" name="totalQty" id="totalQty" value="{$product['product_quantity']}" />
|
||||
<input type="hidden" name="productName" id="productName" value="{$product['product_name']}" />
|
||||
@@ -74,7 +74,7 @@
|
||||
--
|
||||
{/if}
|
||||
</td>
|
||||
<td class="cancelQuantity standard_refund_fields" style="background-color:rgb(232, 237, 194);display:none">
|
||||
<td class="cancelQuantity standard_refund_fields current-edit" style="display:none">
|
||||
{if ($product['product_quantity_return'] + $product['product_quantity_refunded'] >= $product['product_quantity'])}
|
||||
<input type="hidden" name="cancelQuantity[{$k}]" value="0" />
|
||||
{elseif (!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN'))}
|
||||
@@ -95,10 +95,13 @@
|
||||
0/{$productQuantity}
|
||||
{/if}
|
||||
</td>
|
||||
<td class="partial_refund_fields" style="text-align:right;background-color:rgb(232, 237, 194);display:none"><input type="text" size="3" name="partialRefundProduct[{$k}]" /> €</td>
|
||||
{if $can_edit}
|
||||
<td class="partial_refund_fields current-edit" style="text-align:left;display:none">
|
||||
<div style="width:40%;margin-top:5px;float:left">{l s='Quantity:'}</div> <div style="width:60%;margin-top:2px;float:left"><input type="text" size="3" name="partialRefundProductQuantity[{$k}]" value="0" /> 0/{$productQuantity-$product['product_quantity_refunded']}</div>
|
||||
<div style="width:40%;margin-top:5px;float:left">{l s='Amount:'}</div> <div style="width:60%;margin-top:2px;float:left"><input type="text" size="3" name="partialRefundProduct[{$k}]" /> €</div>
|
||||
</td>
|
||||
{if ($can_edit && !$order->hasBeenDelivered())}
|
||||
<td class="product_invoice" colspan="2" style="display: none;text-align:center;">
|
||||
{if $order->hasBeenPaid()}
|
||||
{if sizeof($invoices_collection)}
|
||||
<select name="product_invoice" class="edit_product_invoice">
|
||||
{foreach from=$invoices_collection item=invoice}
|
||||
<option value="{$invoice->id}" {if $invoice->id == $product['id_order_invoice']}selected="selected"{/if}>#{Configuration::get('PS_INVOICE_PREFIX', $current_id_lang)}{'%06d'|sprintf:$invoice->number}</option>
|
||||
|
||||
42
admin-dev/themes/template/orders/_shipping.tpl
Normal file
@@ -0,0 +1,42 @@
|
||||
<table class="table" width="100%" cellspacing="0" cellpadding="0" id="shipping_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:30%">{l s='Date:'}</th>
|
||||
<th>{l s='Type'}</th>
|
||||
<th style="width:20%">{l s='Carrier'}</th>
|
||||
<th>{l s='Weight'}</th>
|
||||
<th style="width:15%">{l s='Shipping cost'}</th>
|
||||
<th style="width:30%">{l s='Tracking number'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getShipping() item=line}
|
||||
<tr>
|
||||
<td>{$line.date_add}</td>
|
||||
<td>{$line.type}</td>
|
||||
<td>{$line.state_name}</td>
|
||||
<td>{$line.weight|string_format:"%.3f"} {Configuration::get('PS_WEIGHT_UNIT')}</td>
|
||||
<td>
|
||||
{if $order->getTaxCalculationMethod() == $smarty.const.PS_TAX_INC}
|
||||
{displayPrice price=$line.shipping_cost_tax_incl currency=$currency->id}
|
||||
{else}
|
||||
{displayPrice price=$line.shipping_cost_tax_excl currency=$currency->id}
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
<span id="shipping_number_show">{if $line.url && $line.tracking_number}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span>
|
||||
{if $line.can_edit}
|
||||
<form style="display: inline;" method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&id_order_invoice={if $line.id_order_invoice}{$line.id_order_invoice|escape:'htmlall':'UTF-8'}{else}0{/if}&id_carrier={if $line.id_carrier}{$line.id_carrier|escape:'htmlall':'UTF-8'}{else}0{/if}">
|
||||
<span class="shipping_number_edit" style="display:none;">
|
||||
<input type="text" name="tracking_number" value="{$line.tracking_number}" />
|
||||
<input type="submit" class="button" name="submitShippingNumber" value="{l s='Update'}" />
|
||||
</span>
|
||||
<a href="#" class="edit_shipping_number_link"><img src="../img/admin/edit.gif" alt="{l s='Edit'}" /></a>
|
||||
<a href="#" class="cancel_shipping_number_link" style="display: none;"><img src="../img/admin/disabled.gif" alt="{l s='Cancel'}" /></a>
|
||||
</form>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -175,7 +175,7 @@
|
||||
updateQty(product[0], product[1], $(this).val() - cart_quantity[$(this).attr('rel')]);
|
||||
}
|
||||
});
|
||||
$('.increaseqty_product,.decreaseqty_product').live('click', function(e) {
|
||||
$('.increaseqty_product, .decreaseqty_product').live('click', function(e) {
|
||||
e.preventDefault();
|
||||
var product = $(this).attr('rel').split('_');
|
||||
var sign = '';
|
||||
@@ -183,10 +183,18 @@
|
||||
sign = '-';
|
||||
updateQty(product[0], product[1], sign+1);
|
||||
});
|
||||
$('#id_product').live('keydown', function(e) {
|
||||
$(this).click();
|
||||
return true;
|
||||
});
|
||||
$('#id_product, .id_product_attribute').live('change', function(e) {
|
||||
e.preventDefault();
|
||||
displayQtyInStock(this.id);
|
||||
});
|
||||
$('#id_product, .id_product_attribute').live('keydown', function(e) {
|
||||
$(this).change();
|
||||
return true;
|
||||
});
|
||||
$('.product_unit_price').live('change', function(e) {
|
||||
e.preventDefault();
|
||||
var product = $(this).attr('rel').split('_');
|
||||
@@ -233,10 +241,13 @@
|
||||
|
||||
function displayQtyInStock(id)
|
||||
{
|
||||
if (id == 'id_product')
|
||||
$('#qty_in_stock').html($('#id_product option:selected').attr('rel'));
|
||||
var id_product = $('#id_product').val();
|
||||
if ($('#ipa_' + id_product + ' option').length)
|
||||
var id_product_attribute = $('#ipa_' + id_product).val();
|
||||
else
|
||||
$('#qty_in_stock').html($('#ipa_'+$('#id_product option:selected').val()+' option:selected').attr('rel'));
|
||||
var id_product_attribute = 0;
|
||||
|
||||
$('#qty_in_stock').html(stock[id_product][id_product_attribute]);
|
||||
}
|
||||
|
||||
function duplicateOrder(id_order)
|
||||
@@ -350,9 +361,9 @@
|
||||
{
|
||||
var html = '<ul>';
|
||||
$.each(res.customers, function() {
|
||||
html += '<li><a class="fancybox" href="{$link->getAdminLink('AdminCustomers')}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1">'+this.firstname+' '+this.lastname+'</a> - '+this.birthday+'<br/>';
|
||||
html += '<a href="mailto:'+this.email+'">'+this.email+'<br />';
|
||||
html += '<a onclick="setupCustomer('+ this.id_customer+');" href="#" class="id_customer">{l s='Choose'}</a></li>';
|
||||
html += '<li class="customerCard"><div class="customerName"><a class="fancybox" href="{$link->getAdminLink('AdminCustomers')}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1">'+this.firstname+' '+this.lastname+'</a><span class="customerBirthday"> '+this.birthday+'</span></div>';
|
||||
html += '<div class="customerEmail"><a href="mailto:'+this.email+'">'+this.email+'</div>';
|
||||
html += '<a onclick="setupCustomer('+ this.id_customer+');" href="#" class="id_customer button">{l s='Choose'}</a></li>';
|
||||
});
|
||||
html += '</ul>';
|
||||
}
|
||||
@@ -460,6 +471,8 @@
|
||||
{
|
||||
var products_found = '';
|
||||
var attributes_html = '';
|
||||
stock = {};
|
||||
|
||||
if(res.found)
|
||||
{
|
||||
$('#products_err').hide();
|
||||
@@ -469,12 +482,19 @@
|
||||
$.each(res.products, function() {
|
||||
products_found += '<option '+(this.combinations.length > 0 ? 'rel="'+this.qty_in_stock+'"' : '')+' value="'+this.id_product+'">'+this.name+(this.combinations.length == 0 ? ' - '+this.formatted_price : '')+'</option>';
|
||||
attributes_html += '<select class="id_product_attribute" id="ipa_'+this.id_product+'" style="display:none;">';
|
||||
var id_product = this.id_product;
|
||||
|
||||
$.each(this.combinations, function() {
|
||||
attributes_html += '<option rel="'+this.qty_in_stock+'" '+(this.default_on == 1 ? 'selected="selected"' : '')+' value="'+this.id_product_attribute+'">'+this.attributes+' - '+this.formatted_price+'</option>';
|
||||
});
|
||||
|
||||
stock[this.id_product] = this.stock;
|
||||
|
||||
attributes_html += '</select>';
|
||||
});
|
||||
|
||||
products_found += '</select>';
|
||||
|
||||
$('#products_found #product_list').html(products_found);
|
||||
$('#products_found #attributes_list').html(attributes_html);
|
||||
displayProductAttributes();
|
||||
@@ -760,7 +780,7 @@
|
||||
</script>
|
||||
<fieldset id="customer_part"><legend><img src="../img/admin/tab-customers.gif" />{l s='Customer'}</legend>
|
||||
<p><label>{l s='Search customers:'}</label><input type="text" id="customer" value="" />
|
||||
<a class="fancybox" href="{$link->getAdminLink('AdminCustomers')}&addcustomer&liteDisplaying=1&submitFormAjax=1#"><img src="../img/admin/add.gif" title="new"/>{l s='Add new customer'}</a></p>
|
||||
<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')}&addcustomer&liteDisplaying=1&submitFormAjax=1#"><img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span></a></p>
|
||||
<div id="customers">
|
||||
</div>
|
||||
</fieldset><br />
|
||||
@@ -771,22 +791,30 @@
|
||||
<input type="hidden" value="" id="id_cart" name="id_cart" />
|
||||
<input type="text" id="product" value="" /></p>
|
||||
<div id="products_found">
|
||||
<div id="product_list">
|
||||
</div>
|
||||
<div id="attributes_list">
|
||||
</div>
|
||||
<p><label for="qty">{l s='Quantity:'}</label><input type="text" name="qty" id="qty"/> <b>{l s='In stock:'}</b> <span id="qty_in_stock"></span></p>
|
||||
<div class="margin-form">
|
||||
<p><input type="submit" onclick="addProduct();return false;" class="button" id="submitAddProduct" value="{l s='Add to cart'}"/></p>
|
||||
</div>
|
||||
<div id="product_list">
|
||||
</div>
|
||||
<div id="attributes_list">
|
||||
</div>
|
||||
<p><label for="qty">{l s='Quantity:'}</label><input type="text" name="qty" id="qty"/> <b>{l s='In stock:'}</b> <span id="qty_in_stock"></span></p>
|
||||
<div class="margin-form">
|
||||
<p><input type="submit" onclick="addProduct();return false;" class="button" id="submitAddProduct" value="{l s='Add to cart'}"/></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="products_err" class="warn" style="display:none;"></div>
|
||||
<div style="clear:both;float:left;width:600px;">
|
||||
<table class="table" id="customer_cart">
|
||||
<div>
|
||||
<table cellspacing="0" cellpadding="0" class="table width5" id="customer_cart">
|
||||
<colgroup>
|
||||
<col width="50px"></col>
|
||||
<col width=""></col>
|
||||
<col width="90px"></col>
|
||||
<col width="100px"></col>
|
||||
<col width="50px"></col>
|
||||
<col width="50px"></col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{l s='Product'}</th>
|
||||
<th height="39px">{l s='Product'}</th>
|
||||
<th>{l s='Description'}</th>
|
||||
<th>{l s='Ref'}</th>
|
||||
<th>{l s='Unit price'}</th>
|
||||
@@ -798,7 +826,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float:right">
|
||||
<div>
|
||||
<p><label for="id_currency">{l s='Currency:'}</label>
|
||||
<script type="text/javascript">
|
||||
{foreach from=$currencies item='currency'}
|
||||
@@ -820,36 +848,52 @@
|
||||
</select>
|
||||
</p>
|
||||
</div>
|
||||
<div id="carts" style="margin: 20px 0;clear:both;float:left;">
|
||||
<p><a href="#" id="show_old_carts"></a></p>
|
||||
<div class="separation"></div>
|
||||
<div id="carts">
|
||||
<p><a href="#" id="show_old_carts" class="button"></a></p>
|
||||
<div id="old_carts_orders">
|
||||
<div id="nonOrderedCarts" style="clear:both;float:left;">
|
||||
<h2>{l s='Carts:'}</h2>
|
||||
<table class="table">
|
||||
<div id="nonOrderedCarts">
|
||||
<h3>{l s='Carts:'}</h3>
|
||||
<table cellspacing="0" cellpadding="0" class="table width5">
|
||||
<colgroup>
|
||||
<col width="10px"></col>
|
||||
<col width=""></col>
|
||||
<col width="70px"></col>
|
||||
<col width="50px"></col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="center">{l s='ID'}</th>
|
||||
<th class="center">{l s='Date'}</th>
|
||||
<th class="center">{l s='Total'}</th>
|
||||
<th class="center">{l s='Action'}</th>
|
||||
<th height="39px" class="left">{l s='ID'}</th>
|
||||
<th class="left">{l s='Date'}</th>
|
||||
<th class="left">{l s='Total'}</th>
|
||||
<th class="left">{l s='Action'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="lastOrders" style="float:left;margin-left:20px;">
|
||||
<h2>{l s='Orders:'}</h2>
|
||||
<table class="table">
|
||||
<div id="lastOrders">
|
||||
<h3>{l s='Orders:'}</h3>
|
||||
<table cellspacing="0" cellpadding="0" class="table width5">
|
||||
<colgroup>
|
||||
<col width="10px"></col>
|
||||
<col width="50px"></col>
|
||||
<col width=""></col>
|
||||
<col width="90px"></col>
|
||||
<col width="100px"></col>
|
||||
<col width="250px"></col>
|
||||
<col width="50px"></col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="center">{l s='ID'}</th>
|
||||
<th class="center">{l s='Date'}</th>
|
||||
<th class="center">{l s='Produits'}</th>
|
||||
<th class="center">{l s='Total paid'}</th>
|
||||
<th class="center">{l s='Payment'}</th>
|
||||
<th class="center">{l s='Status'}</th>
|
||||
<th class="center">{l s='Action'}</th>
|
||||
<th height=39px" class="left">{l s='ID'}</th>
|
||||
<th class="left">{l s='Date'}</th>
|
||||
<th class="left">{l s='Produits'}</th>
|
||||
<th class="left">{l s='Total paid'}</th>
|
||||
<th class="left">{l s='Payment'}</th>
|
||||
<th class="left">{l s='Status'}</th>
|
||||
<th class="left">{l s='Action'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -865,16 +909,16 @@
|
||||
<p>
|
||||
<label>{l s='Search a voucher:'} </label>
|
||||
<input type="text" id="voucher" value="" />
|
||||
<a class="fancybox" href="{$link->getAdminLink('AdminDiscounts')}&adddiscount&liteDisplaying=1&submitFormAjax=1#"><img src="../img/admin/add.gif" title="new"/>{l s='Add new voucher'}</a>
|
||||
<a class="fancybox button" href="{$link->getAdminLink('AdminDiscounts')}&adddiscount&liteDisplaying=1&submitFormAjax=1#"><img src="../img/admin/add.gif" title="new"/>{l s='Add new voucher'}</a>
|
||||
</p>
|
||||
<div class="margin-form">
|
||||
<table class="table" id="voucher_list">
|
||||
<table cellspacing="0" cellpadding="0" class="table" id="voucher_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="center">{l s='Name'}</th>
|
||||
<th class="center">{l s='Description'}</th>
|
||||
<th class="center">{l s='Value'}</th>
|
||||
<th class="center">{l s='Action'}</th>
|
||||
<th class="left">{l s='Name'}</th>
|
||||
<th class="left">{l s='Description'}</th>
|
||||
<th class="left">{l s='Value'}</th>
|
||||
<th class="left">{l s='Action'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -884,30 +928,28 @@
|
||||
<div id="vouchers_err" class="warn"></div>
|
||||
</fieldset>
|
||||
<br />
|
||||
<fieldset id="address_part" class="width2" style="display:none;">
|
||||
<fieldset id="address_part" style="display:none;">
|
||||
<legend><img src="../img/t/AdminAddresses.gif" />{l s='Addresses'}</legend>
|
||||
<div id="address_delivery" style="clear:both;float:left;">
|
||||
<p><b>{l s='Delivery:'}</b></p>
|
||||
<div id="address_delivery">
|
||||
<h3>{l s='Delivery:'}</h3>
|
||||
<select id="id_address_delivery" name="id_address_delivery">
|
||||
</select>
|
||||
<div id="address_delivery_detail">
|
||||
</div>
|
||||
</div>
|
||||
<div id="address_invoice" style="float:left; margin-left:10px;">
|
||||
<p><b>{l s='Invoice:'}</b></p>
|
||||
<div id="address_invoice">
|
||||
<h3>{l s='Invoice:'}</h3>
|
||||
<select id="id_address_invoice" name="id_address_invoice">
|
||||
</select>
|
||||
<div id="address_invoice_detail">
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<p><a class="fancybox" id="new_address" href="{$link->getAdminLink('AdminAddresses')}&addaddress&id_customer=42&liteDisplaying=1&submitFormAjax=1#"><img src="../img/admin/add.gif" title="new"/>{l s='Add new address'}</a></p>
|
||||
</div>
|
||||
<a class="fancybox button" id="new_address" href="{$link->getAdminLink('AdminAddresses')}&addaddress&id_customer=42&liteDisplaying=1&submitFormAjax=1#"><img src="../img/admin/add.gif" title="new"/>{l s='Add new address'}</a>
|
||||
</fieldset>
|
||||
<br />
|
||||
<fieldset id="carriers_part" style="display:none;">
|
||||
<legend><img src="../img/t/AdminCarriers.gif" />{l s='Carriers'}</legend>
|
||||
<div style="float:left;width:440px;">
|
||||
<div>
|
||||
<p>
|
||||
<label>{l s='Carriers:'} </label>
|
||||
<select name="id_carrier" id="id_carrier">
|
||||
@@ -915,7 +957,7 @@
|
||||
</p>
|
||||
<p>
|
||||
<label for="shipping_price">{l s='Shipping price:'}</label> <input type="text" id="shipping_price" name="shipping_price" size="7" /> <span class="currency_sign"></span>
|
||||
<a href="#" onclick="resetShippingPrice()">{l s='Reset shipping price'}</a>
|
||||
<a class="button" href="#" onclick="resetShippingPrice()">{l s='Reset shipping price'}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="float:left;">
|
||||
@@ -933,23 +975,25 @@
|
||||
<legend><img src="../img/t/AdminPayment.gif" />{l s='Summary'}</legend>
|
||||
<div id="send_email_feedback"></div>
|
||||
<div id="cart_summary" style="clear:both;float:left;">
|
||||
<p><b>{l s='Total products:'}</b> <span style="font-weight:bold;" id="total_products"></span> <span class="currency_sign"></span></p>
|
||||
<p><b>{l s='Total vouchers:'}</b> <span style="font-weight:bold;" id="total_vouchers"></span> <span class="currency_sign"></span></p>
|
||||
<p><b>{l s='Total shipping:'}</b> <span style="font-weight:bold;" id="total_shipping"></span> <span class="currency_sign"></span></p>
|
||||
<p><b>{l s='Total without taxes:'}</b> <span style="font-weight:bold;" id="total_without_taxes"></span> <span class="currency_sign"></span></p>
|
||||
<p><b>{l s='Total taxes:'}</b> <span style="font-weight:bold;" id="total_taxes"></span> <span class="currency_sign"></span></p>
|
||||
<p><b>{l s='Total with taxes:'}</b> <span style="font-weight:bold;" id="total_with_taxes"></span> <span class="currency_sign"></span></p>
|
||||
<ul>
|
||||
<li><span class="total_cart">{l s='Total products:'}</span><span id="total_products"></span><span class="currency_sign"></span></li>
|
||||
<li><span class="total_cart">{l s='Total vouchers:'}</span><span id="total_vouchers"></span><span class="currency_sign"></span></li>
|
||||
<li><span class="total_cart">{l s='Total shipping:'}</span><span id="total_shipping"></span><span class="currency_sign"></span></li>
|
||||
<li><span class="total_cart">{l s='Total without taxes:'}</span><span id="total_without_taxes"></span><span class="currency_sign"></span></li>
|
||||
<li><span class="total_cart">{l s='Total taxes:'}</span><span id="total_taxes"></span><span class="currency_sign"></span></li>
|
||||
<li><span class="total_cart">{l s='Total with taxes:'}</span><span id="total_with_taxes"></span><span class="currency_sign"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="float:right;">
|
||||
<div class="order_message_right">
|
||||
<label for="order_message">{l s='Order message:'}</label>
|
||||
<div class="margin-form">
|
||||
<textarea name="order_message" id="order_message" rows="3" cols="45"></textarea>
|
||||
</div>
|
||||
<div class="margin-form">
|
||||
<a href="#" id="send_email_to_customer">{l s='Send an email to the customer with the link to process the payment.'}</a>
|
||||
<a href="#" id="send_email_to_customer" class="button">{l s='Send an email to the customer with the link to process the payment.'}</a>
|
||||
</div>
|
||||
<div class="margin-form">
|
||||
<a target="_blank" id="go_order_process" href="">{l s='Go on payment page to process the payment.'}</a>
|
||||
<a target="_blank" id="go_order_process" href="" class="button">{l s='Go on payment page to process the payment.'}</a>
|
||||
</div>
|
||||
<label>{l s='Payment:'}</label>
|
||||
<div class="margin-form">
|
||||
|
||||
@@ -46,46 +46,30 @@
|
||||
var txt_add_product_no_product = "{l s='Error: No product has been selected'}";
|
||||
var txt_add_product_no_product_quantity = "{l s='Error: Quantity of product must be set'}";
|
||||
var txt_add_product_no_product_price = "{l s='Error: Price of product must be set'}";
|
||||
var txt_confirm = "{l s='Are you sure?'}";
|
||||
var txt_confirm = "{l s='Are you sure?' js=1}";
|
||||
|
||||
{literal}
|
||||
function showWarehouseList()
|
||||
{
|
||||
{/literal}{if (count($warehouse_list) > 1)}{literal}
|
||||
$('#warehouse').show();
|
||||
{/literal}{/if}{literal}
|
||||
}
|
||||
|
||||
function hideWarehouseList()
|
||||
{
|
||||
$('#warehouse').hide();
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
hideWarehouseList();
|
||||
$("input.datepicker").datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
dateFormat: 'yy-mm-dd'
|
||||
});
|
||||
});
|
||||
{/literal}
|
||||
var statesShipped = new Array();
|
||||
{foreach from=$states item=state}
|
||||
{if (!$currentState->shipped && $state['shipped'])}
|
||||
statesShipped.push({$state['id_order_state']});
|
||||
{/if}
|
||||
{/foreach}
|
||||
</script>
|
||||
|
||||
{if ($HOOK_INVOICE)}
|
||||
<div style="float: right; margin: -40px 40px 10px 0;">{$HOOK_INVOICE}</div><br class="clear" />';
|
||||
{/if}
|
||||
|
||||
<fieldset style="width:100%; margin-bottom: 10px;">
|
||||
<fieldset style="width:98%; margin-bottom: 10px;">
|
||||
<div style="width:50%; float: left;">
|
||||
{if (count($invoices_collection))}
|
||||
<a href="pdf.php?id_order={$order->id}&pdf"><img src="../img/admin/charged_ok.gif" alt="{l s='View invoice'}" /> {l s='View invoice'}</a>
|
||||
<a href="pdf.php?id_order={$order->id}&pdf" target="_blank"><img src="../img/admin/charged_ok.gif" alt="{l s='View invoice'}" /> {l s='View invoice'}</a>
|
||||
{else}
|
||||
<img src="../img/admin/charged_ko.gif" alt="{l s='No invoice'}" /> {l s='No invoice'}
|
||||
{/if}
|
||||
-
|
||||
{if ($currentState->delivery || $order->delivery_number)}
|
||||
<a href="pdf.php?id_delivery={$order->delivery_number}"><img src="../img/admin/delivery.gif" alt="{l s='View delivery slip'}" /> {l s='View delivery slip'}</a>
|
||||
<a href="pdf.php?id_order={$order->id}&delivery" target="_blank"><img src="../img/admin/delivery.gif" alt="{l s='View delivery slip'}" /> {l s='View delivery slip'}</a>
|
||||
{else}
|
||||
<img src="../img/admin/delivery_ko.gif" alt="{l s='No delivery slip'}" /> {l s='No delivery slip'}
|
||||
{/if}
|
||||
@@ -103,389 +87,400 @@
|
||||
<div class="clear"></div>
|
||||
</fieldset>
|
||||
|
||||
<!-- Left column -->
|
||||
<div style="width: 48%; float:left;">
|
||||
<!-- Change status form -->
|
||||
<form action="{$currentIndex}&viewOrder&token={$smarty.get.token}" method="post" style="text-align:center;">
|
||||
<select name="id_order_state">
|
||||
{foreach from=$states item=state}
|
||||
<option onclick="{if (!$currentState->shipped && $state['shipped'])}showWarehouseList(){else}hideWarehouseList(){/if}" value="{$state['id_order_state']}" {if $state['id_order_state'] == $currentState->id}selected="selected"{/if}>{$state['name']|stripslashes}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<select name="id_warehouse" id="warehouse">
|
||||
{foreach from=$warehouse_list item=warehouse}
|
||||
<option value="{$warehouse['id_warehouse']}">{$warehouse['name']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input type="hidden" name="id_order" value="{$order->id}" />
|
||||
<input type="submit" name="submitState" value="{l s='Add'}" class="button" />
|
||||
</form>
|
||||
<br />
|
||||
|
||||
<!-- History of status -->
|
||||
<table cellspacing="0" cellpadding="0" class="table" style="width: 100%;">
|
||||
{foreach from=$history item=row key=key}
|
||||
{if ($key == 0)}
|
||||
<tr>
|
||||
<th>{dateFormat date=$row['date_add'] full=true}</th>
|
||||
<th><img src="../img/os/{$row['id_order_state']}.gif" /></th>
|
||||
<th>{$row['ostate_name']|stripslashes}</th>
|
||||
<th>{if $row['employee_lastname']}{$row['employee_firstname']|stripslashes} {$row['employee_lastname']|stripslashes}{/if}</th>
|
||||
</tr>
|
||||
{else}
|
||||
<tr class="{if ($key % 2)}alt_row{/if}">
|
||||
<td>{dateFormat date=$row['date_add'] full=true}</td>
|
||||
<td><img src="../img/os/{$row['id_order_state']}.gif" /></td>
|
||||
<td>{$row['ostate_name']|stripslashes}</td>
|
||||
<td>{if $row['employee_lastname']}{$row['employee_firstname']|stripslashes} {$row['employee_lastname']|stripslashes}{/if}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</table>
|
||||
|
||||
{if $customer->id}
|
||||
<!-- Customer informations -->
|
||||
<br />
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
|
||||
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
|
||||
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
|
||||
{if ($customer->isGuest())}
|
||||
{l s='This order has been placed by a'} <b>{l s='guest'}</b>
|
||||
{if (!Customer::customerExists($customer->email))}
|
||||
<form method="POST" action="index.php?tab=AdminCustomers&id_customer={$customer->id}&token={getAdminToken tab='AdminCustomers'}">
|
||||
<input type="hidden" name="id_lang" value="{$order->id_lang}" />
|
||||
<p class="center"><input class="button" type="submit" name="submitGuestToCustomer" value="{l s='Transform to customer'}" /></p>
|
||||
{l s='This feature will generate a random password and send an e-mail to the customer'}
|
||||
</form>
|
||||
{else}
|
||||
<div><b style="color:red;">{l s='A registered customer account exists with the same email address'}</b></div>
|
||||
{/if}
|
||||
{else}
|
||||
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
|
||||
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
|
||||
{l s='Total paid since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
|
||||
</fieldset>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<!-- Sources block -->
|
||||
{if (sizeof($sources))}
|
||||
<br />
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/tab-stats.gif" /> {l s='Sources'}</legend>
|
||||
<ul {if sizeof($sources) > 3}style="height: 200px; overflow-y: scroll; width: 360px;"{/if}>
|
||||
{foreach from=$sources item=source}
|
||||
<li>
|
||||
{dateFormat date=$source['date_add'] full=true}<br />
|
||||
<b>{l s='From:'}</b> <a href="{$source['http_referer']}">{parse_url($source['http_referer'], $smarty.const.PHP_URL_HOST)|regex_replace:'/^www./':''}</a><br />
|
||||
<b>{l s='To:'}</b> {$source['request_uri']}<br />
|
||||
{if $source['keywords']}<b>{l s='Keywords:'}</b> {$source['keywords']}<br />{/if}<br />
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
<!-- Admin order hook -->
|
||||
{if $HOOK_ADMIN_ORDER}
|
||||
{$HOOK_ADMIN_ORDER}
|
||||
{/if}
|
||||
</div>
|
||||
<!-- END Left column -->
|
||||
|
||||
<!-- Right column -->
|
||||
<div style="width: 48%; float:right;">
|
||||
<!-- Documents block -->
|
||||
<fieldset style="width: 100%">
|
||||
<legend><img src="../img/admin/details.gif" /> {l s='Documents'}</legend>
|
||||
|
||||
<table class="table" width="100%;" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%">Date</th>
|
||||
<th>Document</th>
|
||||
<th style="width:20%">Number</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getDocuments() item=document}
|
||||
<tr>
|
||||
<td>{dateFormat date=$document->date_add}</td>
|
||||
<td>Invoice</td>
|
||||
<td><a href="pdf.php?pdf&id_order_invoice={$document->id}">#{Configuration::get('PS_INVOICE_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->number}</a></td>
|
||||
</tr>
|
||||
{foreachelse}
|
||||
<tr>
|
||||
<td colspan="3">{l s='No document is available'}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
<br />
|
||||
|
||||
<!-- Payments block -->
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/details.gif" /> {l s='Payment'}</legend>
|
||||
|
||||
{if !$order->valid}
|
||||
<form method="post" action="{$currentIndex}&viewOrder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||
<p class="warn">{l s='Don\'t forget to update your conversion rate before make this change.'}</p>
|
||||
<label>{l s='Change order\'s currency to:'}</label>
|
||||
<select name="new_currency">
|
||||
{foreach from=$currencies item=currency_change}
|
||||
{if $currency_change['id_currency'] != $order->id_currency}
|
||||
<option value="{$currency_change['id_currency']}">{$currency_change['name']} - {$currency_change['sign']}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
<div style="width: 98%">
|
||||
<!-- Left column -->
|
||||
<div style="width: 48%; float:left;">
|
||||
<!-- Change status form -->
|
||||
<form action="{$currentIndex}&viewOrder&token={$smarty.get.token}" method="post" style="text-align:center;">
|
||||
<select id="id_order_state" name="id_order_state">
|
||||
{foreach from=$states item=state}
|
||||
<option value="{$state['id_order_state']}" {if $state['id_order_state'] == $currentState->id}selected="selected"{/if}>{$state['name']|stripslashes}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input type="submit" class="button" name="submitChangeCurrency" value="{l s='Change'}" />
|
||||
<input type="hidden" name="id_order" value="{$order->id}" />
|
||||
<input type="submit" name="submitState" value="{l s='Add'}" class="button" />
|
||||
</form>
|
||||
<hr />
|
||||
<br />
|
||||
|
||||
<!-- History of status -->
|
||||
<table cellspacing="0" cellpadding="0" class="table" style="width: 100%;">
|
||||
{foreach from=$history item=row key=key}
|
||||
{if ($key == 0)}
|
||||
<tr>
|
||||
<th>{dateFormat date=$row['date_add'] full=true}</th>
|
||||
<th><img src="../img/os/{$row['id_order_state']}.gif" /></th>
|
||||
<th>{$row['ostate_name']|stripslashes}</th>
|
||||
<th>{if $row['employee_lastname']}{$row['employee_firstname']|stripslashes} {$row['employee_lastname']|stripslashes}{/if}</th>
|
||||
</tr>
|
||||
{else}
|
||||
<tr class="{if ($key % 2)}alt_row{/if}">
|
||||
<td>{dateFormat date=$row['date_add'] full=true}</td>
|
||||
<td><img src="../img/os/{$row['id_order_state']}.gif" /></td>
|
||||
<td>{$row['ostate_name']|stripslashes}</td>
|
||||
<td>{if $row['employee_lastname']}{$row['employee_firstname']|stripslashes} {$row['employee_lastname']|stripslashes}{else} {/if}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</table>
|
||||
|
||||
{if $customer->id}
|
||||
<!-- Customer informations -->
|
||||
<br />
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
|
||||
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
|
||||
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
|
||||
{if ($customer->isGuest())}
|
||||
{l s='This order has been placed by a'} <b>{l s='guest'}</b>
|
||||
{if (!Customer::customerExists($customer->email))}
|
||||
<form method="POST" action="index.php?tab=AdminCustomers&id_customer={$customer->id}&token={getAdminToken tab='AdminCustomers'}">
|
||||
<input type="hidden" name="id_lang" value="{$order->id_lang}" />
|
||||
<p class="center"><input class="button" type="submit" name="submitGuestToCustomer" value="{l s='Transform to customer'}" /></p>
|
||||
{l s='This feature will generate a random password and send an e-mail to the customer'}
|
||||
</form>
|
||||
{else}
|
||||
<div><b style="color:red;">{l s='A registered customer account exists with the same email address'}</b></div>
|
||||
{/if}
|
||||
{else}
|
||||
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
|
||||
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
|
||||
{l s='Total paid since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
|
||||
</fieldset>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<p class="error" style="{if $order->total_paid_tax_incl == $total_paid}display: none;{/if}">
|
||||
{l s='Warning:'} {displayPrice price=$total_paid currency=$currency->id}
|
||||
{l s='paid instead of'} <span class="total_paid">{displayPrice price=$order->total_paid_tax_incl currency=$currency->id}</span>
|
||||
</p>
|
||||
<!-- Sources block -->
|
||||
{if (sizeof($sources))}
|
||||
<br />
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/tab-stats.gif" /> {l s='Sources'}</legend>
|
||||
<ul {if sizeof($sources) > 3}style="height: 200px; overflow-y: scroll; width: 360px;"{/if}>
|
||||
{foreach from=$sources item=source}
|
||||
<li>
|
||||
{dateFormat date=$source['date_add'] full=true}<br />
|
||||
<b>{l s='From:'}</b> <a href="{$source['http_referer']}">{parse_url($source['http_referer'], $smarty.const.PHP_URL_HOST)|regex_replace:'/^www./':''}</a><br />
|
||||
<b>{l s='To:'}</b> {$source['request_uri']}<br />
|
||||
{if $source['keywords']}<b>{l s='Keywords:'}</b> {$source['keywords']}<br />{/if}<br />
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
<form method="post" action="{$currentIndex}&viewOrder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||
<!-- Admin order hook -->
|
||||
{if $HOOK_ADMIN_ORDER}
|
||||
{$HOOK_ADMIN_ORDER}
|
||||
{/if}
|
||||
</div>
|
||||
<!-- END Left column -->
|
||||
|
||||
<!-- Right column -->
|
||||
<div style="width: 48%; float:right;">
|
||||
<!-- Documents block -->
|
||||
<fieldset style="width: 100%">
|
||||
<legend><img src="../img/admin/details.gif" /> {l s='Documents'}</legend>
|
||||
|
||||
{* Include document template *}
|
||||
{include file='orders/_documents.tpl'}
|
||||
</fieldset>
|
||||
<br />
|
||||
|
||||
<!-- Payments block -->
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/money.gif" /> {l s='Payment'}</legend>
|
||||
|
||||
{if !$order->valid}
|
||||
<form method="post" action="{$currentIndex}&viewOrder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||
<p class="warn">{l s='Don\'t forget to update your conversion rate before make this change.'}</p>
|
||||
<label>{l s='Change order\'s currency to:'}</label>
|
||||
<select name="new_currency">
|
||||
{foreach from=$currencies item=currency_change}
|
||||
{if $currency_change['id_currency'] != $order->id_currency}
|
||||
<option value="{$currency_change['id_currency']}">{$currency_change['name']} - {$currency_change['sign']}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
<input type="submit" class="button" name="submitChangeCurrency" value="{l s='Change'}" />
|
||||
</form>
|
||||
<hr />
|
||||
{/if}
|
||||
|
||||
<p class="error" style="{if $orders_total_paid_tax_incl == $total_paid}display: none;{/if}">
|
||||
{l s='Warning:'} {displayPrice price=$total_paid currency=$currency->id}
|
||||
{l s='paid instead of'} <span class="total_paid">{displayPrice price=$order->total_paid_tax_incl currency=$currency->id}</span>
|
||||
</p>
|
||||
|
||||
<form id="formAddPayment" method="post" action="{$currentIndex}&viewOrder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:28%">{l s='Date'}</th>
|
||||
<th>{l s='Payment method'}</th>
|
||||
<th style="width:15%">{l s='Transaction ID'}</th>
|
||||
<th style="width:25%">{l s='Amount'}</th>
|
||||
<th style="width:15%">{l s='Invoice'}</th>
|
||||
<th style="width:10%"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getOrderPaymentCollection() item=payment}
|
||||
<tr>
|
||||
<td>{dateFormat date=$payment->date_add full=true}</td>
|
||||
<td>{$payment->payment_method}</td>
|
||||
<td>{$payment->transaction_id}</td>
|
||||
<td>{displayPrice price=$payment->amount currency=$payment->id_currency}</td>
|
||||
<td>
|
||||
{if $payment->id_order_invoice}
|
||||
{OrderInvoice::retrieveOneById($payment->id_order_invoice)->getInvoiceNumberFormatted($current_id_lang)}
|
||||
{else}
|
||||
{l s='No invoice'}
|
||||
{/if}
|
||||
</td>
|
||||
<td class="right">
|
||||
<a href="#" class="open_payment_information"><img src="../img/admin/details.gif" title="{l s='See payment informations'}" alt="{l s='See payment informations'}" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="payment_information" style="display: none;">
|
||||
<td colspan="6">
|
||||
<p>
|
||||
<b>{l s='Card Number:'}</b>
|
||||
{if $payment->card_number}
|
||||
{$payment->card_number}
|
||||
{else}
|
||||
<i>{l s='Not defined'}</i>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>{l s='Card Brand:'}</b>
|
||||
{if $payment->card_brand}
|
||||
{$payment->card_brand}
|
||||
{else}
|
||||
<i>{l s='Not defined'}</i>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>{l s='Card Expiration:'}</b>
|
||||
{if $payment->card_expiration}
|
||||
{$payment->card_expiration}
|
||||
{else}
|
||||
<i>{l s='Not defined'}</i>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>{l s='Card Holder:'}</b>
|
||||
{if $payment->card_holder}
|
||||
{$payment->card_holder}
|
||||
{else}
|
||||
<i>{l s='Not defined'}</i>
|
||||
{/if}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
{foreachelse}
|
||||
<tr>
|
||||
<td colspan="6" class="center">
|
||||
<h3>{l s='No payment available'}</h3>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{if count($not_paid_invoices_collection) > 0}
|
||||
<tr class="current-edit">
|
||||
<td><input type="text" name="payment_date" class="datepicker" size="17" value="{date('Y-m-d H:i:s')}" /></td>
|
||||
<td>
|
||||
<select name="payment_method">
|
||||
{foreach from=$payment_methods item=payment_method}
|
||||
<option value="{$payment_method}">{$payment_method}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="payment_transaction_id" value="" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="payment_amount" size="5" value="" />
|
||||
<select name="payment_currency">
|
||||
{foreach from=$currencies item=current_currency}
|
||||
<option value="{$current_currency['id_currency']}"{if $current_currency['id_currency'] == $currency->id} selected="selected"{/if}>{$current_currency['sign']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="payment_invoice" id="payment_invoice">
|
||||
{foreach from=$not_paid_invoices_collection item=invoice}
|
||||
<option value="{$invoice->id}" selected="selected">{$invoice->getInvoiceNumberFormatted($current_id_lang)}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td><input class="button" type="submit" name="submitAddPayment" value="Add" /></td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</fieldset>
|
||||
<br />
|
||||
|
||||
<!-- Shipping block -->
|
||||
<fieldset style="width: 100%">
|
||||
<legend><img src="../img/admin/delivery.gif" /> {l s='Shipping'}</legend>
|
||||
|
||||
<div class="clear" style="float: left; margin-right: 10px;">
|
||||
<span class="bold">{l s='Recycled package:'}</span>
|
||||
{if $order->recyclable}
|
||||
<img src="../img/admin/enabled.gif" />
|
||||
{else}
|
||||
<img src="../img/admin/disabled.gif" />
|
||||
{/if}
|
||||
</div>
|
||||
<div style="float: left;">
|
||||
<span class="bold">{l s='Gift wrapping:'}</span>
|
||||
{if $order->gift}
|
||||
<img src="../img/admin/enabled.gif" />
|
||||
</div>
|
||||
<div style="clear: left; margin: 0px 42px 0px 42px; padding-top: 2px;">
|
||||
{if $order->gift_message}
|
||||
<div style="border: 1px dashed #999; padding: 5px; margin-top: 8px;"><b>{l s='Message:'}</b><br />{$order->gift_message|nl2br}</div>
|
||||
{/if}
|
||||
{else}
|
||||
<img src="../img/admin/disabled.gif" />
|
||||
{/if}
|
||||
</div>
|
||||
<div class="clear" style="margin-bottom: 10px;"></div>
|
||||
|
||||
{include file='orders/_shipping.tpl'}
|
||||
|
||||
{if $carrierModuleCall}
|
||||
{$carrierModuleCall}
|
||||
{/if}
|
||||
</fieldset>
|
||||
<br />
|
||||
|
||||
<!-- Return block -->
|
||||
<fieldset style="width: 100%">
|
||||
<legend><img src="../img/admin/delivery.gif" /> {l s='Merchandise returns'}</legend>
|
||||
|
||||
{if $order->getReturn()|count > 0}
|
||||
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:28%">{l s='Date'}</th>
|
||||
<th>{l s='Payment method'}</th>
|
||||
<th style="width:15%">{l s='Transaction ID'}</th>
|
||||
<th style="width:25%">{l s='Amount'}</th>
|
||||
<th style="width:10%"> </th>
|
||||
<th style="width:30%">Date</th>
|
||||
<th>Type</th>
|
||||
<th style="width:20%">Carrier</th>
|
||||
<th style="width:30%">Tracking number</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getOrderPaymentCollection() item=payment}
|
||||
{foreach from=$order->getReturn() item=line}
|
||||
<tr>
|
||||
<td>{dateFormat date=$payment->date_add full=true}</td>
|
||||
<td>{$payment->payment_method}</td>
|
||||
<td>{$payment->transaction_id}</td>
|
||||
<td>{displayPrice price=$payment->amount currency=$payment->id_currency}</td>
|
||||
<td></td>
|
||||
<td>{$line.date_add}</td>
|
||||
<td>{$line.type}</td>
|
||||
<td>{$line.state_name}</td>
|
||||
<td>
|
||||
<span id="shipping_number_show">{if isset($line.url) && isset($line.tracking_number)}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else if isset($line.tracking_number)}{$line.tracking_number}{/if}</span>
|
||||
{if $line.can_edit}
|
||||
<form style="display: inline;" method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&id_order_invoice={if $line.id_order_invoice}{$line.id_order_invoice|escape:'htmlall':'UTF-8'}{else}0{/if}&id_carrier={if $line.id_carrier}{$line.id_carrier|escape:'htmlall':'UTF-8'}{else}0{/if}">
|
||||
<span class="shipping_number_edit" style="display:none;">
|
||||
<input type="text" name="tracking_number" value="{$line.tracking_number}" />
|
||||
<input type="submit" class="button" name="submitShippingNumber" value="{l s='Update'}" />
|
||||
</span>
|
||||
<a href="#" class="edit_shipping_number_link"><img src="../img/admin/edit.gif" alt="{l s='Edit'}" /></a>
|
||||
<a href="#" class="cancel_shipping_number_link" style="display: none;"><img src="../img/admin/disabled.gif" alt="{l s='Cancel'}" /></a>
|
||||
</form>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
<tr>
|
||||
<td><input type="text" name="payment_date" class="datepicker" size="17" value="{dateFormat date=date('Y-m-d H:i:s') full=true}" /></td>
|
||||
<td>
|
||||
<select name="payment_method">
|
||||
{foreach from=PaymentModule::getInstalledPaymentModules() item=payment_method}
|
||||
{assign var=payment_name value=Module::getInstanceByName($payment_method.name)->displayName}
|
||||
<option value="{$payment_name}">{$payment_name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="payment_transaction_id" value="" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="payment_amount" size="5" value="" />
|
||||
<select name="payment_currency">
|
||||
{foreach from=$currencies item=current_currency}
|
||||
<option value="{$current_currency['id_currency']}"{if $current_currency['id_currency'] == $currency->id} selected="selected"{/if}>{$current_currency['sign']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td><input class="button" type="submit" name="submitAddPayment" value="Add" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</fieldset>
|
||||
<br />
|
||||
|
||||
<!-- Shipping block -->
|
||||
<fieldset style="width: 100%">
|
||||
<legend><img src="../img/admin/delivery.gif" /> {l s='Shipping'}</legend>
|
||||
|
||||
<div class="clear" style="float: left; margin-right: 10px;">
|
||||
<span class="bold">{l s='Recycled package:'}</span>
|
||||
{if $order->recyclable}
|
||||
<img src="../img/admin/enabled.gif" />
|
||||
{else}
|
||||
<img src="../img/admin/disabled.gif" />
|
||||
{l s='No merchandise returns yet.'}
|
||||
{/if}
|
||||
</div>
|
||||
<div style="float: left;">
|
||||
<span class="bold">{l s='Gift wrapping:'}</span>
|
||||
{if $order->gift}
|
||||
<img src="../img/admin/enabled.gif" />
|
||||
</div>
|
||||
<div style="clear: left; margin: 0px 42px 0px 42px; padding-top: 2px;">
|
||||
{if $order->gift_message}
|
||||
<div style="border: 1px dashed #999; padding: 5px; margin-top: 8px;"><b>{l s='Message:'}</b><br />{$order->gift_message|nl2br}</div>
|
||||
{/if}
|
||||
{else}
|
||||
<img src="../img/admin/disabled.gif" />
|
||||
|
||||
{if $carrierModuleCall}
|
||||
{$carrierModuleCall}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="clear" style="margin-bottom: 10px;"></div>
|
||||
|
||||
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:30%">{l s='Date:'}</th>
|
||||
<th>{l s='Type'}</th>
|
||||
<th style="width:20%">{l s='Carrier'}</th>
|
||||
<th>{l s='Weight'}</th>
|
||||
<th style="width:15%">{l s='Shipping cost'}</th>
|
||||
<th style="width:30%">{l s='Tracking number'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getShipping() item=line}
|
||||
<tr>
|
||||
<td>{$line.date_add}</td>
|
||||
<td>{$line.type}</td>
|
||||
<td>{$line.state_name}</td>
|
||||
<td>{$line.weight|string_format:"%.3f"} {Configuration::get('PS_WEIGHT_UNIT')}</td>
|
||||
<td>{if $order->getTaxCalculationMethod() == $smarty.const.PS_TAX_INC}{displayPrice price=$line.shipping_cost_tax_incl currency=$currency->id}{else}{displayPrice price=$line.shipping_cost_tax_excl currency=$currency->id}{/if}</td>
|
||||
<td>
|
||||
<span id="shipping_number_show">{if $line.url && $line.tracking_number}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span>
|
||||
{if $line.can_edit}
|
||||
<form style="display: inline;" method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&id_order_invoice={if $line.id_order_invoice}{$line.id_order_invoice|escape:'htmlall':'UTF-8'}{else}0{/if}&id_carrier={if $line.id_carrier}{$line.id_carrier|escape:'htmlall':'UTF-8'}{else}0{/if}">
|
||||
<span class="shipping_number_edit" style="display:none;">
|
||||
<input type="text" name="tracking_number" value="{$line.tracking_number}" />
|
||||
<input type="submit" class="button" name="submitShippingNumber" value="{l s='Update'}" />
|
||||
</span>
|
||||
<a href="#" class="edit_shipping_number_link"><img src="../img/admin/edit.gif" alt="{l s='Edit'}" /></a>
|
||||
<a href="#" class="cancel_shipping_number_link" style="display: none;"><img src="../img/admin/disabled.gif" alt="{l s='Cancel'}" /></a>
|
||||
</form>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{if $carrierModuleCall}
|
||||
{$carrierModuleCall}
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
<!-- Return block -->
|
||||
<fieldset style="width: 100%">
|
||||
<legend><img src="../img/admin/delivery.gif" /> {l s='Merchandise returns'}</legend>
|
||||
|
||||
{if $order->getReturn()|count > 0}
|
||||
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:30%">Date</th>
|
||||
<th>Type</th>
|
||||
<th style="width:20%">Carrier</th>
|
||||
<th style="width:30%">Tracking number</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$order->getReturn() item=line}
|
||||
<tr>
|
||||
<td>{$line.date_add}</td>
|
||||
<td>{$line.type}</td>
|
||||
<td>{$line.state_name}</td>
|
||||
<td>
|
||||
<span id="shipping_number_show">{if $line.url && $line.tracking_number}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span>
|
||||
{if $line.can_edit}
|
||||
<form style="display: inline;" method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&id_order_invoice={if $line.id_order_invoice}{$line.id_order_invoice|escape:'htmlall':'UTF-8'}{else}0{/if}&id_carrier={if $line.id_carrier}{$line.id_carrier|escape:'htmlall':'UTF-8'}{else}0{/if}">
|
||||
<span class="shipping_number_edit" style="display:none;">
|
||||
<input type="text" name="tracking_number" value="{$line.tracking_number}" />
|
||||
<input type="submit" class="button" name="submitShippingNumber" value="{l s='Update'}" />
|
||||
</span>
|
||||
<a href="#" class="edit_shipping_number_link"><img src="../img/admin/edit.gif" alt="{l s='Edit'}" /></a>
|
||||
<a href="#" class="cancel_shipping_number_link" style="display: none;"><img src="../img/admin/disabled.gif" alt="{l s='Cancel'}" /></a>
|
||||
</form>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{else}
|
||||
{l s='No merchandise returns yet.'}
|
||||
{/if}
|
||||
|
||||
{if $carrierModuleCall}
|
||||
{$carrierModuleCall}
|
||||
{/if}
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
</div>
|
||||
<!-- END Right column -->
|
||||
<div class="clear" style="margin-bottom: 10px;"></div>
|
||||
</div>
|
||||
<!-- END Right column -->
|
||||
<div class="clear" style="margin-bottom: 10px;"></div>
|
||||
|
||||
<!-- Addresses -->
|
||||
<div style="width: 48%; float:left;"></contact>
|
||||
<!-- Shipping address -->
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/delivery.gif" alt="{l s='Shipping address'}" />{l s='Shipping address'}</legend>
|
||||
<div style="width: 98%">
|
||||
<!-- Addresses -->
|
||||
<div style="width: 48%; float:left;"></contact>
|
||||
<!-- Shipping address -->
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/delivery.gif" alt="{l s='Shipping address'}" />{l s='Shipping address'}</legend>
|
||||
|
||||
{if $can_edit}
|
||||
<form method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}">
|
||||
<div style="margin-bottom:5px;border-bottom:1px solid black;">
|
||||
<p style="text-align:center;">
|
||||
<select name="id_address">
|
||||
{foreach from=$customer_addresses item=address}
|
||||
<option value="{$address['id_address']}"{if $address['id_address'] == $order->id_address_delivery} selected="selected"{/if}>{$address['alias']} - {$address['address1']} {$address['postcode']} {$address['city']}{if !empty($address['state'])} {$address['state']}{/if}, {$address['country']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input class="button" type="submit" name="submitAddressShipping" value="{l s='Change'}" />
|
||||
</p>
|
||||
{if $can_edit}
|
||||
<form method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}">
|
||||
<div style="margin-bottom:5px;border-bottom:1px solid black;">
|
||||
<p style="text-align:center;">
|
||||
<select name="id_address">
|
||||
{foreach from=$customer_addresses item=address}
|
||||
<option value="{$address['id_address']}"{if $address['id_address'] == $order->id_address_delivery} selected="selected"{/if}>{$address['alias']} - {$address['address1']} {$address['postcode']} {$address['city']}{if !empty($address['state'])} {$address['state']}{/if}, {$address['country']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input class="button" type="submit" name="submitAddressShipping" value="{l s='Change'}" />
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
<div style="float: right">
|
||||
<a href="?tab=AdminAddresses&id_address={$addresses.delivery->id}&addaddress&realedit=1&id_order={$order->id}{if ($addresses.delivery->id == $addresses.invoice->id)}&address_type=1{/if}&token={getAdminToken tab='AdminAddresses'}&back={$smarty.server.REQUEST_URI}"><img src="../img/admin/edit.gif" /></a>
|
||||
<a href="http://maps.google.com/maps?f=q&hl={$iso_code_lang}&geocode=&q={$addresses.delivery->address1} {$addresses.delivery->postcode} {$addresses.delivery->city} {if ($addresses.delivery->id_state)} {$addresses.deliveryState->name}{/if}" target="_blank"><img src="../img/admin/google.gif" alt="" class="middle" /></a>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
<div style="float: right">
|
||||
<a href="?tab=AdminAddresses&id_address={$addresses.delivery->id}&addaddress&realedit=1&id_order={$order->id}{if ($addresses.delivery->id == $addresses.invoice->id)}&address_type=1{/if}&token={getAdminToken tab='AdminAddresses'}&back={$smarty.server.REQUEST_URI}"><img src="../img/admin/edit.gif" /></a>
|
||||
<a href="http://maps.google.com/maps?f=q&hl={$iso_code_lang}&geocode=&q={$addresses.delivery->address1} {$addresses.delivery->postcode} {$addresses.delivery->city} {if ($addresses.delivery->id_state)} {$addresses.deliveryState->name}{/if}" target="_blank"><img src="../img/admin/google.gif" alt="" class="middle" /></a>
|
||||
</div>
|
||||
{displayAddressDetail address=$addresses.delivery newLine='<br />'}
|
||||
{if $addresses.delivery->other}<hr />{$addresses.delivery->other}<br />{/if}
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
{displayAddressDetail address=$addresses.delivery newLine='<br />'}
|
||||
{if $addresses.delivery->other}<hr />{$addresses.delivery->other}<br />{/if}
|
||||
</fieldset>
|
||||
</div>
|
||||
<div style="width: 48%; float:right;"></contact>
|
||||
<!-- Invoice address -->
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/invoice.gif" alt="{l s='Invoice address'}" />{l s='Invoice address'}</legend>
|
||||
|
||||
<div style="width: 48%; float:right;"></contact>
|
||||
<!-- Invoice address -->
|
||||
<fieldset style="width: 100%;">
|
||||
<legend><img src="../img/admin/invoice.gif" alt="{l s='Invoice address'}" />{l s='Invoice address'}</legend>
|
||||
{if $can_edit}
|
||||
<form method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}">
|
||||
<div style="margin-bottom:5px;border-bottom:1px solid black;">
|
||||
<p style="text-align:center;">
|
||||
<select name="id_address">
|
||||
{foreach from=$customer_addresses item=address}
|
||||
<option value="{$address['id_address']}"{if $address['id_address'] == $order->id_address_invoice} selected="selected"{/if}>{$address['alias']} - {$address['address1']} {$address['postcode']} {$address['city']}{if !empty($address['state'])} {$address['state']}{/if}, {$address['country']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input class="button" type="submit" name="submitAddressInvoice" value="{l s='Change'}" />
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
{if $can_edit}
|
||||
<form method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}">
|
||||
<div style="margin-bottom:5px;border-bottom:1px solid black;">
|
||||
<p style="text-align:center;">
|
||||
<select name="id_address">
|
||||
{foreach from=$customer_addresses item=address}
|
||||
<option value="{$address['id_address']}"{if $address['id_address'] == $order->id_address_invoice} selected="selected"{/if}>{$address['alias']} - {$address['address1']} {$address['postcode']} {$address['city']}{if !empty($address['state'])} {$address['state']}{/if}, {$address['country']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<input class="button" type="submit" name="submitAddressInvoice" value="{l s='Change'}" />
|
||||
</p>
|
||||
<div style="float: right">
|
||||
<a href="?tab=AdminAddresses&id_address={$addresses.invoice->id}&addaddress&realedit=1&id_order={$order->id}{if ($addresses.delivery->id == $addresses.invoice->id)}&address_type=2{/if}&back={$smarty.server.REQUEST_URI}&token={getAdminToken tab='AdminAddresses'}"><img src="../img/admin/edit.gif" /></a>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
<div style="float: right">
|
||||
<a href="?tab=AdminAddresses&id_address={$addresses.invoice->id}&addaddress&realedit=1&id_order={$order->id}{if ($addresses.delivery->id == $addresses.invoice->id)}&address_type=2{/if}&back={$smarty.server.REQUEST_URI}&token={getAdminToken tab='AdminAddresses'}"><img src="../img/admin/edit.gif" /></a>
|
||||
</div>
|
||||
|
||||
{displayAddressDetail address=$addresses.invoice newLine='<br />'}
|
||||
{if $addresses.invoice->other}<hr />{$addresses.invoice->other}<br />{/if}
|
||||
</fieldset>
|
||||
{displayAddressDetail address=$addresses.invoice newLine='<br />'}
|
||||
{if $addresses.invoice->other}<hr />{$addresses.invoice->other}<br />{/if}
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="clear" style="margin-bottom: 10px;"></div>
|
||||
</div>
|
||||
<div class="clear" style="margin-bottom: 10px;"></div>
|
||||
|
||||
<form action="{$currentIndex}&vieworder&token={$smarty.get.token}" method="post" onsubmit="return orderDeleteProduct('{l s='Cannot return this product'}', '{l s='Quantity to cancel is greater than quantity available'}');">
|
||||
<form style="width: 98%" action="{$currentIndex}&vieworder&token={$smarty.get.token}" method="post" onsubmit="return orderDeleteProduct('{l s='Cannot return this product'}', '{l s='Quantity to cancel is greater than quantity available'}');">
|
||||
<input type="hidden" name="id_order" value="{$order->id}" />
|
||||
<fieldset style="width: 100%; ">
|
||||
<div style="display: none">
|
||||
<input type="hidden" value="{$order->getWarehouseList()|implode}" id="warehouse_list" />
|
||||
</div>
|
||||
<legend><img src="../img/admin/cart.gif" alt="{l s='Products'}" />{l s='Products'}</legend>
|
||||
<div style="float:left;width: 100%;">
|
||||
{if $can_edit}
|
||||
<div style="float: left;"><a href="#" class="add_product"><img src="../img/admin/add.gif" alt="{l s='Add a product'}" /> {l s='Add a product'}</a></div>
|
||||
{if !$order->hasBeenDelivered()}<div style="float: left;"><a href="#" class="add_product"><img src="../img/admin/add.gif" alt="{l s='Add a product'}" /> {l s='Add a product'}</a></div>{/if}
|
||||
<div style="float: right; margin-right: 10px" id="refundForm">
|
||||
<!--
|
||||
<a href="#" class="standard_refund"><img src="../img/admin/add.gif" alt="{l s='Proceed a standard refund'}" /> {l s='Proceed a standard refund'}</a>
|
||||
@@ -518,9 +513,11 @@
|
||||
<th style="width: 8%;text-align:right;display:none" class="partial_refund_fields">
|
||||
{l s='Partial refund'}
|
||||
</th>
|
||||
{if !$order->hasBeenDelivered()}
|
||||
<th style="width: 8%;text-align:center;">
|
||||
{l s='Action'}
|
||||
</th>
|
||||
{/if}
|
||||
</tr>
|
||||
|
||||
{foreach from=$products item=product key=k}
|
||||
@@ -549,44 +546,45 @@
|
||||
</div>
|
||||
|
||||
<div style="float:right;">
|
||||
<table class="table" width="300px;" cellspacing="0" cellpadding="0">
|
||||
<table class="table" width="450px;" cellspacing="0" cellpadding="0">
|
||||
<tr id="total_products">
|
||||
<td width="150px;">{l s='Products'}</td>
|
||||
<td align="right">{displayPrice price=$order->total_products_wt currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields" style="display:none;background-color:rgb(232, 237, 194);"> </td>
|
||||
<td width="150px;"><b>{l s='Products'}</b></td>
|
||||
<td class="amount" align="right">{displayPrice price=$order->total_products_wt currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields current-edit" style="display:none;"> </td>
|
||||
</tr>
|
||||
<tr id="total_discounts" {if $order->total_discounts_tax_incl == 0}style="display: none;"{/if}>
|
||||
<td>{l s='Discounts'}</td>
|
||||
<td align="right">-{displayPrice price=$order->total_discounts_tax_incl currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields" style="display:none;background-color:rgb(232, 237, 194);"> </td>
|
||||
<td><b>{l s='Discounts'}</b></td>
|
||||
<td class="amount" align="right">-{displayPrice price=$order->total_discounts_tax_incl currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields current-edit" style="display:none;"> </td>
|
||||
</tr>
|
||||
<tr id="total_wrapping" {if $order->total_wrapping_tax_incl == 0}style="display: none;"{/if}>
|
||||
<td>{l s='Wrapping'}</td>
|
||||
<td align="right">{displayPrice price=$order->total_wrapping_tax_incl currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields" style="display:none;background-color:rgb(232, 237, 194);"> </td>
|
||||
<td><b>{l s='Wrapping'}</b></td>
|
||||
<td class="amount" align="right">{displayPrice price=$order->total_wrapping_tax_incl currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields current-edit" style="display:none;"> </td>
|
||||
</tr>
|
||||
<tr id="total_shipping">
|
||||
<td>{l s='Shipping'}</td>
|
||||
<td align="right">{displayPrice price=$order->total_shipping_tax_incl currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields" style="display:none;background-color:rgb(232, 237, 194);"><input type="text" size="3" name="partialRefundShippingCost" /> €</td>
|
||||
<td><b>{l s='Shipping'}</b></td>
|
||||
<td class="amount" align="right">{displayPrice price=$order->total_shipping_tax_incl currency=$currency->id}</td>
|
||||
<td class="partial_refund_fields current-edit" style="display:none;"><input type="text" size="3" name="partialRefundShippingCost" /> €</td>
|
||||
</tr>
|
||||
<tr style="font-size: 20px" id="total_order">
|
||||
<td>{l s='Total'}</td>
|
||||
<td align="right">
|
||||
<td style="font-size: 20px">{l s='Total'}</td>
|
||||
<td class="amount" style="font-size: 20px" align="right">
|
||||
{displayPrice price=$order->total_paid_tax_incl currency=$currency->id}
|
||||
</td>
|
||||
<td class="partial_refund_fields" style="display:none;background-color:rgb(232, 237, 194);"> </td>
|
||||
<td class="partial_refund_fields current-edit" style="display:none;"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
|
||||
{if (sizeof($discounts))}
|
||||
<div style="float:right; width:280px; margin-top:15px;">
|
||||
{if (sizeof($discounts) || $can_edit)}
|
||||
<div style="float:right; width:450px; margin-top:15px;">
|
||||
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
|
||||
<tr>
|
||||
<th><img src="../img/admin/coupon.gif" alt="{l s='Discounts'}" />{l s='Discount name'}</th>
|
||||
<th align="center" style="width: 100px">{l s='Value'}</th>
|
||||
{if $can_edit}<th align="center" style="width: 30px">{l s='Action'}</th>{/if}
|
||||
</tr>
|
||||
{foreach from=$discounts item=discount}
|
||||
<tr>
|
||||
@@ -597,8 +595,25 @@
|
||||
{/if}
|
||||
{displayPrice price=$discount['value'] currency=$currency->id}
|
||||
</td>
|
||||
{if $can_edit}
|
||||
<td class="center">
|
||||
<a href="{$currentIndex}&submitDeleteVoucher&id_order_cart_rule={$discount['id_order_cart_rule']}&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}"><img src="../img/admin/delete.gif" alt="{l s='Delete voucher'}" /></a>
|
||||
</td>
|
||||
{/if}
|
||||
</tr>
|
||||
{/foreach}
|
||||
{if $can_edit}
|
||||
<tr>
|
||||
<td colspan="3" class="center">
|
||||
<a href="#" id="add_voucher"><img src="../img/admin/add.gif" alt="{l s='Add'}" /> {l s='Add a new discount'}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="display: none" >
|
||||
<td colspan="3" class="current-edit" id="voucher_form">
|
||||
{include file='orders/_discount_form.tpl'}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</table>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -662,7 +677,7 @@
|
||||
{foreach from=$messages item=message}
|
||||
<div style="overflow:auto; width:400px;" {if $message['is_new_for_me']}class="new_message"{/if}>
|
||||
{if ($message['is_new_for_me'])}
|
||||
<a class="new_message" title="{l s='Mark this message as \'viewed\''}" href="{$smarty.get.REQUEST_URI}&token={$smarty.get.token}&messageReaded={$message['id_message']}"><img src="../img/admin/enabled.gif" alt="" /></a>
|
||||
<a class="new_message" title="{l s='Mark this message as \'viewed\''}" href="{$smarty.server.REQUEST_URI}&token={$smarty.get.token}&messageReaded={$message['id_message']}"><img src="../img/admin/enabled.gif" alt="" /></a>
|
||||
{/if}
|
||||
{l s='At'} <i>{dateFormat date=$message['date_add']}
|
||||
</i> {l s='from'} <b>{if ($message['elastname'])}{$message['efirstname']} {$message['elastname']}{else}{$message['cfirstname']} {$message['clastname']}{/if}</b>
|
||||
@@ -676,18 +691,7 @@
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div style="float: left; margin-left: 40px">
|
||||
<fieldset style="width: 400px;">
|
||||
<legend><img src="../img/admin/slip.gif" alt="{l s='Credit slip'}" />{l s='Credit slip'}</legend>
|
||||
{if (!sizeof($slips))}
|
||||
{l s='No slip for this order.'}
|
||||
{else}
|
||||
{foreach from=$slips item=slip}
|
||||
({dateFormat date=$slip['date_upd']}) : <b><a href="pdf.php?id_order_slip={$slip['id_order_slip']}">{l s='#'}{'%06d'|sprintf:$slip['id_order_slip']}</a></b><br />
|
||||
{/foreach}
|
||||
{/if}
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="clear"> </div>
|
||||
<br /><br /><a href="{$currentIndex}&token={$smarty.get.token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to list'}</a><br />
|
||||
|
||||
|
||||
30
admin-dev/themes/template/outstanding/_print_pdf_icon.tpl
Normal file
@@ -0,0 +1,30 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9589 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{* Generate HTML code for printing Invoice Icon with link *}
|
||||
<span style="width:20px; margin-right:5px;">
|
||||
<a href="pdf.php?id_order_invoice={$id_invoice}&pdf"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
||||
</span>
|
||||
@@ -94,6 +94,6 @@
|
||||
</tr>
|
||||
{/if}
|
||||
</table>
|
||||
<div style="text-align:center;"><input type="submit" class="button space" name="submitModule{$list['name_id']}" value="{l s='Save restrictions'}" /></div>
|
||||
<div><input type="submit" class="button space" name="submitModule{$list['name_id']}" value="{l s='Save restrictions'}" /></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -150,7 +150,7 @@
|
||||
return false;
|
||||
});
|
||||
|
||||
$('input[name="smarty_force_compile"], input[name="smarty_cache"]').change(function(){
|
||||
$('input[name="smarty_force_compile"], input[name="smarty_cache"], input[name="smarty_console"]').change(function(){
|
||||
$('#smarty_up').val(1);
|
||||
});
|
||||
|
||||
|
||||
@@ -24,25 +24,43 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{if !empty($error)}
|
||||
<div class="hint" style="display:block">{$error}</div>
|
||||
{else}
|
||||
<fieldset>
|
||||
<legend>{l s='Account number'}</legend>
|
||||
<div class="hint" style="display:block">
|
||||
{l s='Configure the account number of the product for each zone, if a field is empty, it will use the default one of the shop set in the Accounting Management tab'}
|
||||
</div>
|
||||
<br />
|
||||
{foreach from=$productAccountNumberList['zones'] key=id_zone item=currentZone}
|
||||
<label>{$currentZone['name']}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="zone_{$id_zone}" value="{$currentZone['account_number']}" />
|
||||
</div>
|
||||
{/foreach}
|
||||
</form>
|
||||
<div style="text-align:left; font-size:11px;">
|
||||
<i>{l s='Theses fields are used for the accounting export'}</i>
|
||||
</div>
|
||||
<div class="separation"></div>
|
||||
</fieldset>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{if isset($product->id)}
|
||||
|
||||
<h4>{l s='Accounting'}</h4>
|
||||
<div class="separation"></div>
|
||||
{if !empty($error)}
|
||||
<div class="hint" style="display:block">{$error}</div>
|
||||
{else}
|
||||
<fieldset>
|
||||
<legend>{l s='Account number'}</legend>
|
||||
<div class="hint" style="display:block">
|
||||
{l s='Configure the account number of the product for each zone, if a field is empty, it will use the default one of the shop set in the Accounting Management tab'}
|
||||
</div>
|
||||
<br />
|
||||
{foreach from=$productAccountNumberList['zones'] key=id_zone item=currentZone}
|
||||
<label>{$currentZone['name']}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="zone_{$id_zone}" value="{$currentZone['account_number']}" />
|
||||
</div>
|
||||
{/foreach}
|
||||
</form>
|
||||
<div style="text-align:left; font-size:11px;">
|
||||
<i>{l s='These fields are used for the accounting export'}</i>
|
||||
</div>
|
||||
<div class="separation"></div>
|
||||
</fieldset>
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
162
admin-dev/themes/template/products/associations.tpl
Normal file
@@ -0,0 +1,162 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
|
||||
searchCategory();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<div class="Associations">
|
||||
<h4>{l s='Associations'}</h4>
|
||||
<div class="separation"></div>
|
||||
<div id="no_default_category" class="hint">
|
||||
{l s='Please check a category in order to select the default category.'}
|
||||
</div>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="col-left">
|
||||
<label for="category_block">{l s='Associated categories:'}</label>
|
||||
</td>
|
||||
<td class="col-right">
|
||||
<div id="category_block">{$category_tree}</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-left">
|
||||
<label for="id_category_default">{l s='Default category:'}</label>
|
||||
</td>
|
||||
<td class="col-right">
|
||||
<select id="id_category_default" name="id_category_default">
|
||||
{foreach from=$selected_cat item=cat}
|
||||
<option value="{$cat.id_category}" {if $product->id_category_default == $cat.id_category}selected="selected"{/if} >{$cat.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{if $feature_shop_active}
|
||||
<div class="separation"></div>
|
||||
{* @todo use asso_shop from Helper *}
|
||||
<label>{l s='Shop association:'}</label>
|
||||
{$displayAssoShop}
|
||||
{/if}
|
||||
|
||||
<div class="separation"></div>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Accessories:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input type="hidden" name="inputAccessories" id="inputAccessories" value="{foreach from=$accessories item=accessory}{$accessory.id_product}-{/foreach}" />
|
||||
<input type="hidden" name="nameAccessories" id="nameAccessories" value="{foreach from=$accessories item=accessory}{$accessory.name|htmlentitiesUTF8}¤{/foreach}" />
|
||||
|
||||
<div id="ajax_choose_product">
|
||||
<p style="clear:both;margin-top:0;">
|
||||
<input type="text" value="" id="product_autocomplete_input" />
|
||||
{l s='Begin typing the first letters of the product name, then select the product from the drop-down list'}
|
||||
</p>
|
||||
<p class="preference_description">{l s='(Do not forget to Save the product afterward)'}</p>
|
||||
<!--<img onclick="$(this).prev().search();" style="cursor: pointer;" src="../img/admin/add.gif" alt="{l s='Add an accessory'}" title="{l s='Add an accessory'}" />-->
|
||||
</div>
|
||||
<div id="divAccessories">
|
||||
{* @todo : donot use 3 foreach, but assign var *}
|
||||
{foreach from=$accessories item=accessory}
|
||||
{$accessory.name|htmlentitiesUTF8}{if !empty($accessory.reference)}{$accessory.reference}{/if}
|
||||
<span onclick="delAccessory({$accessory.id_product});" style="cursor: pointer;">
|
||||
<img src="../img/admin/delete.gif" class="middle" alt="" />
|
||||
</span><br />
|
||||
{/foreach}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<br />
|
||||
<td class="col-left"><label>{l s='Manufacturer:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<select name="id_manufacturer" id="id_manufacturer">
|
||||
<option value="0">-- {l s='Choose (optional)'} --</option>
|
||||
{if $product->id_manufacturer}
|
||||
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
|
||||
{/if}
|
||||
<option disabled="disabled">----------</option>
|
||||
</select>
|
||||
<a href="{$link->getAdminLink('AdminManufacturers')}&addmanufacturer" class="confirm_leave">
|
||||
<img src="../img/admin/add.gif" alt="{l s='Create'}" title="{l s='Create'}" /> <b>{l s='Create'}</b>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var formProduct;
|
||||
var accessories = new Array();
|
||||
urlToCall = null;
|
||||
/* function autocomplete */
|
||||
$(document).ready(function() {
|
||||
$('#product_autocomplete_input')
|
||||
.autocomplete('ajax_products_list.php', {
|
||||
minChars: 1,
|
||||
autoFill: true,
|
||||
max:20,
|
||||
matchContains: true,
|
||||
mustMatch:true,
|
||||
scroll:false,
|
||||
cacheLength:0,
|
||||
formatItem: function(item) {
|
||||
return item[1]+' - '+item[0];
|
||||
}
|
||||
}).result(addAccessory);
|
||||
|
||||
$('#product_autocomplete_input').setOptions({
|
||||
extraParams: {
|
||||
excludeIds : getAccessorieIds()
|
||||
}
|
||||
});
|
||||
|
||||
getManufacturers();
|
||||
});
|
||||
|
||||
function getAccessorieIds()
|
||||
{
|
||||
var ids = {$product->id}+',';
|
||||
ids += $('#inputAccessories').val().replace(/\\-/g,',').replace(/\\,$/,'');
|
||||
ids = ids.replace(/\,$/,'');
|
||||
|
||||
return ids;
|
||||
}
|
||||
</script>
|
||||
145
admin-dev/themes/template/products/attachments.tpl
Normal file
@@ -0,0 +1,145 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 8971 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{if isset($obj->id)}
|
||||
|
||||
<h4>{l s='Attachment'}</h4>
|
||||
<div class="separation"></div>
|
||||
<fieldset>
|
||||
<label>{l s='Filename:'} </label>
|
||||
<div class="margin-form translatable">
|
||||
{foreach $languages as $language}
|
||||
<div class="lang_{$language.id_lang}" style="{if $language.id_lang != $default_form_language}display:none;{/if}float: left;">
|
||||
<input type="text" name="attachment_name_{$language.id_lang}" value="{$attachment_name[$language.id_lang]}" />
|
||||
</div>
|
||||
{/foreach}
|
||||
<sup> *</sup>
|
||||
<p class="preference_description">{l s='Maximum 32 characters.'}</p>
|
||||
</div>
|
||||
<div class="clear"> </div>
|
||||
<label>{l s='Description:'} </label>
|
||||
<div class="margin-form translatable">
|
||||
{foreach $languages as $language}
|
||||
<div id="attachment_description_{$language.id_lang}" style="display: {if $language.id_lang == $default_form_language}block{else}none{/if}; float: left;">
|
||||
<textarea name="attachment_description_{$language.id_lang}">{$attachment_description[$language.id_lang]}</textarea>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
<div class="clear"> </div>
|
||||
<label>{l s='File'}</label>
|
||||
<div class="margin-form">
|
||||
<p><input type="file" name="attachment_file" /></p>
|
||||
<p class="preference_description">{l s='Upload file from your computer'} ({$PS_ATTACHMENT_MAXIMUM_SIZE} {l s='Mo maximum'})</p>
|
||||
</div>
|
||||
<div class="clear"> </div>
|
||||
<div class="margin-form">
|
||||
<input type="submit" value="{l s='Add a new attachment file'}" name="submitAddAttachments" class="button" />
|
||||
</div>
|
||||
<div class="small"><sup>*</sup> {l s='Required field'}</div>
|
||||
</fieldset>
|
||||
<div class="clear"> </div>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<p>{l s='Attachments for this product:'}</p>
|
||||
<select multiple id="selectAttachment1" name="attachments[]" style="width:300px;height:160px;">
|
||||
{foreach $attach1 as $attach}
|
||||
<option value="{$attach.id_attachment}">{$attach.name}</option>
|
||||
{/foreach}
|
||||
</select><br /><br />
|
||||
<a href="#" id="removeAttachment" style="text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px">
|
||||
{l s='Remove'} >>
|
||||
</a>
|
||||
</td>
|
||||
<td style="padding-left:20px;">
|
||||
<p>{l s='Available attachments:'}</p>
|
||||
<select multiple id="selectAttachment2" style="width:300px;height:160px;">
|
||||
{foreach $attach2 as $attach}
|
||||
<option value="{$attach.id_attachment}">{$attach.name}</option>
|
||||
{/foreach}
|
||||
</select><br /><br />
|
||||
<a href="#" id="addAttachment" style="text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px">
|
||||
<< {l s='Add'}
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="clear"> </div>
|
||||
<input type="hidden" name="arrayAttachments" id="arrayAttachments" value="{foreach $attach1 as $attach}{$attach.id_attachment},{/foreach}" />
|
||||
<input type="submit" name="submitAttachments" id="submitAttachments" value="{l s='Update attachments'}" class="button" />
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
//displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||
$(document).ready(function() {
|
||||
|
||||
$("#addAttachment").live('click', function() {
|
||||
$("#selectAttachment2 option:selected").each(function(){
|
||||
var val = $('#arrayAttachments').val();
|
||||
var tab = val.split(',');
|
||||
for (var i=0; i < tab.length; i++)
|
||||
if (tab[i] == $(this).val())
|
||||
return false;
|
||||
$('#arrayAttachments').val(val+$(this).val()+',');
|
||||
});
|
||||
return !$("#selectAttachment2 option:selected").remove().appendTo("#selectAttachment1");
|
||||
});
|
||||
$("#removeAttachment").live('click', function() {
|
||||
$("#selectAttachment1 option:selected").each(function(){
|
||||
var val = $('#arrayAttachments').val();
|
||||
var tab = val.split(',');
|
||||
var tabs = '';
|
||||
for (var i=0; i < tab.length; i++)
|
||||
if (tab[i] != $(this).val())
|
||||
{
|
||||
tabs = tabs+','+tab[i];
|
||||
$('#arrayAttachments').val(tabs);
|
||||
}
|
||||
});
|
||||
return !$("#selectAttachment1 option:selected").remove().appendTo("#selectAttachment2");
|
||||
});
|
||||
$("#product").submit(function() {
|
||||
$("#selectAttachment1 option").each(function(i) {
|
||||
$(this).attr("selected", "selected");
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{/if}
|
||||
@@ -0,0 +1,28 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9197 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a class="pointer default" onclick="javascript:defaultProductAttribute('{$id}', '{getAdminToken tab='AdminProducts'}', $(this).parent('td').parent('tr'));" title="{$action}" >
|
||||
<img src="../img/admin/asterisk.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -0,0 +1,28 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9197 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a class="pointer delete" onclick="javascript:deleteProductAttribute('{$id}', '{getAdminToken tab='AdminProducts'}', $(this).parent('td').parent('tr'));" title="{$action}" >
|
||||
<img src="../img/admin/delete.gif" alt="{$action}" />
|
||||
</a>
|
||||
@@ -0,0 +1,28 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9197 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a class="pointer edit" onclick="javascript:editProductAttribute('{$id}', '{getAdminToken tab='AdminProducts'}');" title="{l s='Modify this combination'}" ids="'{$id}'">
|
||||
<img src="../img/admin/edit.gif" alt="{l s='Modify this combination'}" />
|
||||
</a>
|
||||
@@ -0,0 +1,50 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 10634 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helper/list/list_footer.tpl"}
|
||||
|
||||
{block name="after"}
|
||||
|
||||
<div class="hint clear" style="display:block">
|
||||
<ul>
|
||||
<li>{l s='The row in blue is the default combination.'}</li>
|
||||
<li>{l s='A default combination must be designated for each product.'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var impact = getE('attribute_price_impact');
|
||||
var impact2 = getE('attribute_weight_impact');
|
||||
|
||||
var s_attr_group = $('#span_new_group');
|
||||
var s_attr_name = $('#span_new_attr');
|
||||
var s_impact = $('#span_impact');
|
||||
var s_impact2 = $('#span_weight_impact');
|
||||
|
||||
init_elems();
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
@@ -1,284 +1,338 @@
|
||||
<a href="#" onclick="$('#add_new_combination').slideToggle();return false;">
|
||||
<img src="../img/admin/add.gif" alt="" />{l s='Add a new combination'}
|
||||
</a>
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(\'#id_mvt_reason\').change(function(){
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
{if $product->is_virtual}
|
||||
$('#virtual_good_attributes').show();
|
||||
{else}
|
||||
$('#virtual_good_attributes').hide();
|
||||
{/if}
|
||||
|
||||
var msg_combination_1 = '{l s='Please choose a group'}';
|
||||
var msg_combination_2 = '{l s='Please choose an attribute'}';
|
||||
var msg_combination_3 = '{l s='You can only add one combination per type of group'}';
|
||||
|
||||
</script>
|
||||
|
||||
{if isset($product->id)}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('#id_mvt_reason').change(function(){
|
||||
updateMvtStatus($(this).val());
|
||||
});
|
||||
updateMvtStatus($(this).val());
|
||||
});
|
||||
updateMvtStatus($(this).val());
|
||||
|
||||
if ( $("input[name=is_virtual_file]:checked").val() == 1)
|
||||
{
|
||||
$("#virtual_good_attributes").show();
|
||||
$("#is_virtual_file_product").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#virtual_good_attributes").hide();
|
||||
$("#is_virtual_file_product").hide();
|
||||
}
|
||||
|
||||
$("input[name=is_virtual_file]").live("change", function() {
|
||||
if($(this).val() == "1")
|
||||
{
|
||||
$("#virtual_good_attributes").show();
|
||||
$("#is_virtual_file_product").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#virtual_good_attributes").hide();
|
||||
$("#is_virtual_file_product").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var attrs = new Array();
|
||||
var modifyattributegroup = "{l s='Modify this attribute combination' js=1}";
|
||||
attrs[0] = new Array(0, "---");
|
||||
{foreach from=$attributeJs key=idgrp item=group}
|
||||
attrs[{$idgrp}] = new Array(0
|
||||
, '---'
|
||||
{foreach from=$group key=idattr item=attrname}
|
||||
, "{$idattr}", "{$attrname|addslashes}"
|
||||
{/foreach}
|
||||
);
|
||||
{/foreach}
|
||||
</script>
|
||||
<table cellpadding="5">
|
||||
<tr>
|
||||
<td colspan="2"><b>{l s='Add or modify combinations for this product'}</b> {l s='or go to'}
|
||||
<a href="index.php?tab=AdminAttributeGenerator&id_product={$product->id}&attributegenerator&token={$token_generator}" onclick="return confirm('{l s='Are you sure you want to delete entered product information?'}');"><img src="../img/admin/appearance.gif" alt="combinations_generator" class="middle" title="{l s='Product combinations generator'}" /> {l s='Product combinations generator'}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="separation"></div><br />
|
||||
|
||||
<div id="add_new_combination" style="display: none;">
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">{l s='Group:'}</td>
|
||||
<td style="padding-bottom:5px;"><select name="attribute_group" id="attribute_group" style="width: 200px;" onchange="populate_attrs();">
|
||||
|
||||
{if isset($attributes_groups)}
|
||||
{foreach from=$attributes_groups key=k item=attribute_group}
|
||||
<option value="{$attribute_group.id_attribute_group}">{$attribute_group.name|htmlentitiesUTF8} </option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">{l s='Attribute:'}
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<select name="attribute" id="attribute" style="width: 200px;">
|
||||
<option value="0">---</option>
|
||||
</select>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
populate_attrs();
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
||||
<input style="width: 140px; margin-bottom: 10px;" type="button" value="{l s='Add'}" class="button" onclick="add_attr();"/><br />
|
||||
<input style="width: 140px;" type="button" value="{l s='Delete'}" class="button" onclick="del_attr()"/></td>
|
||||
<td align="left">
|
||||
<select id="product_att_list" name="attribute_combinaison_list[]" multiple="multiple" size="4" style="width: 320px;"></select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td colspan="2"><div class="separation"></div></td></tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Reference:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input size="55" type="text" id="attribute_reference" name="attribute_reference" value="" style="width: 130px; margin-right: 44px;" />
|
||||
{l s='EAN13:'}<input size="55" maxlength="13" type="text" id="attribute_ean13" name="attribute_ean13" value="" style="width: 110px; margin-left: 10px; margin-right: 44px;" />
|
||||
{l s='UPC:'}<input size="55" maxlength="12" type="text" id="attribute_upc" name="attribute_upc" value="" style="width: 110px; margin-left: 10px; margin-right: 44px;" />
|
||||
<span class="hint" name="help_box">{l s='Special characters allowed:'} .-_#<span class="hint-pointer"> </span></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td colspan="2"><div class="separation"></div></td></tr>
|
||||
<table cellpadding="5" id="virtual_good_attributes" style="width:100%;display:none;">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div style="padding:5px;width:50%;float:left;margin-right:20px;border-right:1px solid #E0D0B1">
|
||||
<p>{l s='Your server\'s maximum upload file size is'}: {$upload_max_filesize}</p>
|
||||
<label id="virtual_product_file_attribute_label" for="virtual_product_file_attribute" class="t">{l s='Upload a file'}</label>
|
||||
<p><input id="virtual_product_file_attribute" name="virtual_product_file_attribute" onchange="uploadFile2();" maxlength="'.$this->maxFileSize.'" type="file"></p>
|
||||
<div id="upload-confirmation2">
|
||||
|
||||
<p id="gethtmlink" style="display: none;">{l s='This is the link'} : {$product->productDownload->getHtmlLink(false, true)}
|
||||
<a id="make_downloadable_product_attribute" onclick="return confirm('{l s='Delete this file' slashes=1 js=1}')" href="index.php?tab=AdminProducts&id_product={$product->productDownload->id_product}&id_category={$id_category}&token={$token}&deleteVirtualProductAttribute=true" class="red">{l s='Delete this file'}</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<a id="delete_downloadable_product_attribute" style="display:none;" onclick="return confirm('{l s='Delete this file' slashes=1 js=1}')" href="index.php?tab=AdminProducts&id_product={$product->id}&id_category={$id_category}&token={$token}&deleteVirtualProductAttribute=true" class="red">{l s='Delete this file'}</a>
|
||||
{if $up_filename}
|
||||
<input type="hidden" id="virtual_product_filename_attribute" name="virtual_product_filename_attribute" value="{$up_filename}" />
|
||||
{/if}
|
||||
|
||||
<p class="block">
|
||||
<label for="virtual_product_name" class="t">{l s='Filename'}</label>
|
||||
<input id="virtual_product_name_attribute" name="virtual_product_name_attribute" style="width:200px" value="" type="text">
|
||||
<span class="hint" name="help_box" style="display:none;">{l s='The full filename with its extension (e.g., Book.pdf)'}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div id="virtual_good_more_attribute" style="padding:5px;width:40%;float:left;margin-left:10px">
|
||||
<p class="block">
|
||||
<label for="virtual_product_nb_downloable" class="t">{l s='Number of downloads'}</label>
|
||||
<input type="text" id="virtual_product_nb_downloable_attribute" name="virtual_product_nb_downloable_attribute" value="" class="" size="6" />
|
||||
<span class="hint" name="help_box" style="display:none">{l s='Number of authorized downloads per customer'}</span>
|
||||
</p>
|
||||
<p class="block">
|
||||
<label for="virtual_product_expiration_date_attribute" class="t">{l s='Expiration date'}</label>
|
||||
<input type="text" id="virtual_product_expiration_date_attribute" name="virtual_product_expiration_date_attribute" value="" size="11" maxlength="10" autocomplete="off" /> {l s='Format: YYYY-MM-DD'}
|
||||
<span class="hint" name="help_box" style="display:none">{l s='No expiration date if you leave this blank'}</span>
|
||||
</p>
|
||||
<p class="block">
|
||||
<label for="virtual_product_nb_days" class="t">{l s='Number of days'}</label>
|
||||
<input type="text" id="virtual_product_nb_days_attribute" name="virtual_product_nb_days_attribute" value="" class="" size="4" /><sup> *</sup>
|
||||
<span class="hint" name="help_box" style="display:none">{l s='How many days this file can be accessed by customers'} - <em>({l s='set to zero for unlimited access'} ) </em></span>
|
||||
</p>
|
||||
<p class="block">
|
||||
<label for="virtual_product_is_shareable_attribute" class="t">{l s='is shareable'}</label>
|
||||
<input type="checkbox" id="virtual_product_is_shareable_attribute" name="virtual_product_is_shareable" value="1" />
|
||||
<span class="hint" name="help_box" style="display:none">{l s='Specify if the file can be shared'}</span>
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan="2"><div class="separation"></div></td></tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Wholesale price:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
||||
<input type="text" size="6" name="attribute_wholesale_price" id="attribute_wholesale_price" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
||||
{if $currency->format % 2 == 0} {$currency->sign} {/if}({l s='overrides Wholesale price on Information tab'})</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on price:'}</td>
|
||||
<td colspan="2" style="padding-bottom:5px;">
|
||||
<select name="attribute_price_impact" id="attribute_price_impact" style="width: 140px;" onchange="check_impact(); calcImpactPriceTI();">
|
||||
<option value="0">{l s='None'}</option>
|
||||
<option value="1">{l s='Increase'}</option>
|
||||
<option value="-1">{l s='Reduction'}</option>
|
||||
</select>
|
||||
<span id="span_impact"> {l s='of'} {if $currency->format % 2 != 0}{$currency->sign} {/if}
|
||||
<input type="text" size="6" name="attribute_price" id="attribute_price" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.'); calcImpactPriceTI();"/>{if $currency->format % 2 == 0} {$currency->sign}{/if}
|
||||
{if $country_display_tax_label}
|
||||
{l s='(tax excl.)'}
|
||||
<span {if $tax_exclude_option}style="display:none"{/if}> {l s='or'} {if $currency->format % 2 != 0}{$currency->sign} {/if}
|
||||
<input type="text" size="6" name="attribute_priceTI" id="attribute_priceTI" value="0.00"
|
||||
onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.'); calcImpactPriceTE();"/>
|
||||
<script type="text/javascript">
|
||||
var attrs = new Array();
|
||||
var modifyattributegroup = "{l s='Modify this attribute combination' js=1}";
|
||||
attrs[0] = new Array(0, "---");
|
||||
{foreach from=$attributeJs key=idgrp item=group}
|
||||
attrs[{$idgrp}] = new Array(0
|
||||
, '---'
|
||||
{foreach from=$group key=idattr item=attrname}
|
||||
, "{$idattr}", "{$attrname|addslashes}"
|
||||
{/foreach}
|
||||
);
|
||||
{/foreach}
|
||||
</script>
|
||||
<h4>{l s='Add or modify combinations for this product'}</h4>
|
||||
<div class="separation"></div> {l s='or go to'}
|
||||
<a class="button bt-icon confirm_leave" href="index.php?tab=AdminAttributeGenerator&id_product={$product->id}&attributegenerator&token={$token_generator}"><img src="../img/admin/appearance.gif" alt="combinations_generator" class="middle" title="{l s='Product combinations generator'}" /><span>{l s='Product combinations generator'}</span></a>
|
||||
<div class="separation"></div>
|
||||
|
||||
<div id="add_new_combination" style="display: none;">
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
||||
{l s='Group:'}
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<select name="attribute_group" id="attribute_group" style="width: 200px;" onchange="populate_attrs();">
|
||||
{if isset($attributes_groups)}
|
||||
{foreach from=$attributes_groups key=k item=attribute_group}
|
||||
<option value="{$attribute_group.id_attribute_group}">{$attribute_group.name|htmlentitiesUTF8} </option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
||||
{l s='Attribute:'}
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<select name="attribute" id="attribute" style="width: 200px;">
|
||||
<option value="0">---</option>
|
||||
</select>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
populate_attrs();
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
||||
<input style="width: 140px; margin-bottom: 10px;" type="button" value="{l s='Add'}" class="button" onclick="add_attr();"/><br />
|
||||
<input style="width: 140px;" type="button" value="{l s='Delete'}" class="button" onclick="del_attr()"/></td>
|
||||
<td align="left">
|
||||
<select id="product_att_list" name="attribute_combinaison_list[]" multiple="multiple" size="4" style="width: 320px;"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="separation"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Reference:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input size="55" type="text" id="attribute_reference" name="attribute_reference" value="" style="width: 130px; margin-right: 44px;" />
|
||||
{l s='EAN13:'}<input size="55" maxlength="13" type="text" id="attribute_ean13" name="attribute_ean13" value="" style="width: 110px; margin-left: 10px; margin-right: 44px;" />
|
||||
{l s='UPC:'}<input size="55" maxlength="12" type="text" id="attribute_upc" name="attribute_upc" value="" style="width: 110px; margin-left: 10px; margin-right: 44px;" />
|
||||
<span class="hint" name="help_box">{l s='Special characters allowed:'} .-_#<span class="hint-pointer"> </span></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="separation"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellpadding="5" id="virtual_good_attributes" style="width:100%;display:none;">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div style="padding:5px;width:50%;float:left;margin-right:20px;border-right:1px solid #E0D0B1">
|
||||
<h3>{l s='Virtual product'}</h3>
|
||||
<p>{l s='Your server\'s maximum upload file size is'}: {$upload_max_filesize}</p>
|
||||
<label id="virtual_product_file_attribute_label" for="virtual_product_file_attribute" class="t">{l s='Upload a file'}</label>
|
||||
<p><input id="virtual_product_file_attribute" name="virtual_product_file_attribute" onchange="uploadFile2();" maxlength="'.$this->maxFileSize.'" type="file"></p>
|
||||
<div id="upload-confirmation2">
|
||||
|
||||
<p id="gethtmlink" style="display: none;">{l s='This is the link'} : {$product->productDownload->getHtmlLink(false, true)}
|
||||
<a id="make_downloadable_product_attribute" onclick="return confirm('{l s='Delete this file' js=1}')" href="index.php?tab=AdminProducts&id_product={$product->productDownload->id_product}&id_category={$id_category}&token={$token}&deleteVirtualProductAttribute=true" class="red">{l s='Delete this file'}</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<a id="delete_downloadable_product_attribute" style="display:none;" onclick="return confirm('{l s='Delete this file' js=1}')" href="index.php?tab=AdminProducts&id_product={$product->id}&id_category={$id_category}&token={$token}&deleteVirtualProductAttribute=true" class="red">{l s='Delete this file'}</a>
|
||||
{if $up_filename}
|
||||
<input type="hidden" id="virtual_product_filename_attribute" name="virtual_product_filename_attribute" value="{$up_filename}" />
|
||||
{/if}
|
||||
|
||||
<p class="block">
|
||||
<label for="virtual_product_name_attribute" class="t">{l s='Filename'}</label>
|
||||
<input id="virtual_product_name_attribute" name="virtual_product_name_attribute" style="width:200px" value="" type="text">
|
||||
<span class="hint" name="help_box" style="display:none;">{l s='The full filename with its extension (e.g., Book.pdf)'}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div id="virtual_good_more_attribute" style="padding:5px;width:40%;float:left;margin-left:10px">
|
||||
<p class="block">
|
||||
<label for="virtual_product_nb_downloable" class="t">{l s='Number of downloads'}</label>
|
||||
<input type="text" id="virtual_product_nb_downloable_attribute" name="virtual_product_nb_downloable_attribute" value="" class="" size="6" />
|
||||
<span class="hint" name="help_box" style="display:none">{l s='Number of authorized downloads per customer'}</span>
|
||||
</p>
|
||||
<p class="block">
|
||||
<label for="virtual_product_expiration_date_attribute" class="t">{l s='Expiration date'}</label>
|
||||
<input class="datepicker" type="text" id="virtual_product_expiration_date_attribute" name="virtual_product_expiration_date_attribute" value="" size="11" maxlength="10" autocomplete="off" /> {l s='Format: YYYY-MM-DD'}
|
||||
<span class="hint" name="help_box" style="display:none">{l s='No expiration date if you leave this blank'}</span>
|
||||
</p>
|
||||
<p class="block">
|
||||
<label for="virtual_product_nb_days" class="t">{l s='Number of days'}</label>
|
||||
<input type="text" id="virtual_product_nb_days_attribute" name="virtual_product_nb_days_attribute" value="" class="" size="4" /><sup> *</sup>
|
||||
<span class="hint" name="help_box" style="display:none">{l s='How many days this file can be accessed by customers'} - <em>({l s='set to zero for unlimited access'} ) </em></span>
|
||||
</p>
|
||||
<p class="block">
|
||||
<label for="virtual_product_is_shareable_attribute" class="t">{l s='is shareable'}</label>
|
||||
<input type="checkbox" id="virtual_product_is_shareable_attribute" name="virtual_product_is_shareable" value="1" />
|
||||
<span class="hint" name="help_box" style="display:none">{l s='Specify if the file can be shared'}</span>
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="separation"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||
{l s='Wholesale price:'}
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
||||
<input type="text" size="6" name="attribute_wholesale_price" id="attribute_wholesale_price" value="" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
||||
{if $currency->format % 2 == 0} {$currency->sign} {/if}<span id="attribute_wholesale_price_blank">({l s='leave blank if the price does not change'})</span>
|
||||
<span style="display:none" id="attribute_wholesale_price_full">({l s='overrides Wholesale price on Information tab'})</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on price:'}</td>
|
||||
<td colspan="2" style="padding-bottom:5px;">
|
||||
<select name="attribute_price_impact" id="attribute_price_impact" style="width: 140px;" onchange="check_impact(); calcImpactPriceTI();">
|
||||
<option value="0">{l s='None'}</option>
|
||||
<option value="1">{l s='Increase'}</option>
|
||||
<option value="-1">{l s='Reduction'}</option>
|
||||
</select>
|
||||
<span id="span_impact"> {l s='of'} {if $currency->format % 2 != 0}{$currency->sign} {/if}
|
||||
<input type="text" size="6" name="attribute_price" id="attribute_price" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.'); calcImpactPriceTI();"/>{if $currency->format % 2 == 0} {$currency->sign}{/if}
|
||||
{if $country_display_tax_label}
|
||||
{l s='(tax excl.)'}
|
||||
<span {if $tax_exclude_option}style="display:none"{/if}> {l s='or'}
|
||||
{if $currency->format % 2 != 0}{$currency->sign} {/if}
|
||||
<input type="text" size="6" name="attribute_priceTI" id="attribute_priceTI" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.'); calcImpactPriceTE();"/>
|
||||
{if $currency->format % 2 == 0} {$currency->sign}{/if} {l s='(tax incl.)'}
|
||||
</span> {l s='final product price will be set to'}
|
||||
{if $currency->format % 2 != 0}{$currency->sign} {/if}
|
||||
<span id="attribute_new_total_price">0.00</span>
|
||||
{if $currency->format % 2 == 0}{$currency->sign} {/if}
|
||||
{/if}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on weight:'}</td>
|
||||
<td colspan="2" style="padding-bottom:5px;"><select name="attribute_weight_impact" id="attribute_weight_impact" style="width: 140px;" onchange="check_weight_impact();">
|
||||
<option value="0">{l s='None'}</option>
|
||||
<option value="1">{l s='Increase'}</option>
|
||||
<option value="-1">{l s='Reduction'}</option>
|
||||
</select>
|
||||
<span id="span_weight_impact"> {l s='of'}
|
||||
<input type="text" size="6" name="attribute_weight" id="attribute_weight" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" /> {$ps_weight_unit}</span></td>
|
||||
</tr>
|
||||
<tr id="tr_unit_impact">
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on unit price :'}</td>
|
||||
<td colspan="2" style="padding-bottom:5px;"><select name="attribute_unit_impact" id="attribute_unit_impact" style="width: 140px;" onchange="check_unit_impact();">
|
||||
<option value="0">{l s='None'}</option>
|
||||
<option value="1">{l s='Increase'}</option>
|
||||
<option value="-1">{l s='Reduction'}</option>
|
||||
</select>
|
||||
<span id="span_weight_impact"> {l s='of'}
|
||||
{if $currency->format % 2 != 0} {$currency->sign} {/if}
|
||||
<input type="text" size="6" name="attribute_unity" id="attribute_unity" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />{if $currency->format % 2 == 0} {$currency->sign}{/if} / <span id="unity_third">{$field_value_unity}</span>
|
||||
</span></td>
|
||||
</tr>
|
||||
{if $ps_use_ecotax}
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||
{l s='Eco-tax:'}
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
||||
<input type="text" size="3" name="attribute_ecotax" id="attribute_ecotax" value="0.00"
|
||||
onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
||||
{if $currency->format % 2 == 0} {$currency->sign}{/if}
|
||||
({l s='overrides Eco-tax on Information tab'})
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left"><label>{l s='Minimum quantity:'}</label>
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input size="3" maxlength="6" name="minimal_quantity" id="minimal_quantity" type="text" value="{$minimal_quantity}" />
|
||||
<p>{l s='The minimum quantity to buy this product (set to 1 to disable this feature)'}</p>
|
||||
{/if}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left" style="width:150px"><label>{l s='Available date:'}</label></td>
|
||||
<td style="padding-bottom:5px;"><input class="datepicker" id="available_date" name="available_date" value="{$available_date}" style="text-align: center;" type="text" />
|
||||
<p>{l s='The available date when this product is out of stock'}</p>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(".datepicker").datepicker({
|
||||
prevText: '',
|
||||
nextText: ''
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan="2"><div class="separation"></div></td></tr>
|
||||
<tr>
|
||||
<td style="width:150px">{l s='Image:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<ul id="id_image_attr">
|
||||
{foreach from=$images key=k item=image}
|
||||
<li style="float: left; width: {$imageWidth}px;">
|
||||
<input type="checkbox" name="id_image_attr[]" value="{$image.id_image}" id="id_image_attr_{$image.id_image}" />
|
||||
<label for="id_image_attr_{$image.id_image}" style="float: none;">
|
||||
<img src="{$smarty.const._THEME_PROD_DIR_}{$image.obj->getExistingImgPath()}-small.jpg"
|
||||
alt="{$image.legend|htmlentitiesUTF8}"
|
||||
title="{$image.legend|htmlentitiesUTF8}" />
|
||||
</label>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<img id="pic" alt="" title="" style="display: none; width: 100px; height: 100px; float: left; border: 1px dashed #BBB; margin-left: 20px;" />
|
||||
</td>
|
||||
</tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on weight:'}</td>
|
||||
<td colspan="2" style="padding-bottom:5px;">
|
||||
<select name="attribute_weight_impact" id="attribute_weight_impact" style="width: 140px;" onchange="check_weight_impact();">
|
||||
<option value="0">{l s='None'}</option>
|
||||
<option value="1">{l s='Increase'}</option>
|
||||
<option value="-1">{l s='Reduction'}</option>
|
||||
</select>
|
||||
<span id="span_weight_impact"> {l s='of'}
|
||||
<input type="text" size="6" name="attribute_weight" id="attribute_weight" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
||||
{$ps_weight_unit}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="tr_unit_impact">
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on unit price :'}</td>
|
||||
<td colspan="2" style="padding-bottom:5px;">
|
||||
<select name="attribute_unit_impact" id="attribute_unit_impact" style="width: 140px;" onchange="check_unit_impact();">
|
||||
<option value="0">{l s='None'}</option>
|
||||
<option value="1">{l s='Increase'}</option>
|
||||
<option value="-1">{l s='Reduction'}</option>
|
||||
</select>
|
||||
<span id="span_weight_impact"> {l s='of'}
|
||||
{if $currency->format % 2 != 0} {$currency->sign} {/if}
|
||||
<input type="text" size="6" name="attribute_unity" id="attribute_unity" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />{if $currency->format % 2 == 0} {$currency->sign}{/if} / <span id="unity_third">{$field_value_unity}</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{if $ps_use_ecotax}
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||
{l s='Eco-tax:'}
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
||||
<input type="text" size="3" name="attribute_ecotax" id="attribute_ecotax" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
||||
{if $currency->format % 2 == 0} {$currency->sign}{/if}
|
||||
({l s='overrides Eco-tax on Information tab'})
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td style="width:150px">{l s='Default:'}<br /><br /></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input type="checkbox" name="attribute_default" id="attribute_default" value="1" /> {l s='Make this the default combination for this product'}<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px"> </td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<span style="float: left;"><input type="submit" name="submitProductAttribute" id="submitProductAttribute" value="{l s='Add this combination'}" class="button" onclick="attr_selectall(); this.form.action += '&addproduct&tabs=3';" /> </span>
|
||||
<span id="ResetSpan" style="float: left; margin-left: 8px; display: none;">
|
||||
<input type="reset" name="ResetBtn" id="ResetBtn" onclick="init_elems(); getE('submitProductAttribute').value ='{l s='Add this attributes group'}';
|
||||
getE('id_product_attribute').value = 0; $('#ResetSpan').slideToggle();" class="button" value="{l s='Cancel modification'}" /></span><span class="clear"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left">
|
||||
<label>{l s='Minimum quantity:'}</label>
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input size="3" maxlength="6" name="minimal_quantity" id="minimal_quantity" type="text" value="{$minimal_quantity}" />
|
||||
<p>{l s='The minimum quantity to buy this product (set to 1 to disable this feature)'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left" style="width:150px">
|
||||
<label>{l s='Available date:'}</label>
|
||||
</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input class="datepicker" id="available_date_attribute" name="available_date_attribute" value="{$available_date}" style="text-align: center;" type="text" />
|
||||
<p>{l s='The available date when this product is out of stock'}</p>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(".datepicker").datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
dateFormat: 'yy-mm-dd'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="separation"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px">{l s='Image:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<ul id="id_image_attr">
|
||||
{foreach from=$images key=k item=image}
|
||||
<li style="float: left; width: {$imageWidth}px;">
|
||||
<input type="checkbox" name="id_image_attr[]" value="{$image.id_image}" id="id_image_attr_{$image.id_image}" />
|
||||
<label for="id_image_attr_{$image.id_image}" style="float: none;">
|
||||
<img src="{$smarty.const._THEME_PROD_DIR_}{$image.obj->getExistingImgPath()}-small.jpg" alt="{$image.legend|htmlentitiesUTF8}" title="{$image.legend|htmlentitiesUTF8}" />
|
||||
</label>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<img id="pic" alt="" title="" style="display: none; width: 100px; height: 100px; float: left; border: 1px dashed #BBB; margin-left: 20px;" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px">{l s='Default:'}<br /><br /></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input type="checkbox" name="attribute_default" id="attribute_default" value="1" />
|
||||
{l s='Make this the default combination for this product'}<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px"> </td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<span style="float: left;">
|
||||
<input type="submit" name="submitProductAttribute" id="submitProductAttribute" value="{l s='Add this combination'}" class="button" onclick="attr_selectall(); this.form.action += '&addproduct&tabs=3';" add="{l s='Add this combination'}" update="{l s='Update this combination'}" />
|
||||
</span>
|
||||
<span id="ResetSpan" style="float:left;margin-left:8px;display:none;">
|
||||
<input type="reset" name="ResetBtn" id="ResetBtn" onclick="init_elems();getE('id_product_attribute').value = 0;" class="button" value="{l s='Cancel modification'}" />
|
||||
</span>
|
||||
<span class="clear"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{$content}
|
||||
|
||||
{$list}
|
||||
{/if}
|
||||
|
||||
93
admin-dev/themes/template/products/customization.tpl
Normal file
@@ -0,0 +1,93 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 8971 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{if isset($obj->id)}
|
||||
<h4>{l s='Add or modify customizable properties'}</h4>
|
||||
|
||||
<div class="separation"></div><br />
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<tr>
|
||||
<td style="width:150px;text-align:right;padding-right:10px;font-weight:bold;vertical-align:top;" valign="top">{l s='File fields:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input type="text" name="uploadable_files" id="uploadable_files" size="4" value="{$uploadable_files}" />
|
||||
<p class="preference_description">{l s='Number of upload file fields displayed'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px;text-align:right;padding-right:10px;font-weight:bold;vertical-align:top;" valign="top">{l s='Text fields:'}</td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input type="text" name="text_fields" id="text_fields" size="4" value="{$text_fields}" />
|
||||
<p class="preference_description">{l s='Number of text fields displayed'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="text-align:center;">
|
||||
<input type="submit" name="submitCustomizationConfiguration" value="{l s='Update settings'}" class="button" onclick="this.form.action += '&addproduct&tabs=5';" />
|
||||
</td>
|
||||
</tr>
|
||||
{if $has_file_labels}
|
||||
<tr>
|
||||
<td colspan="2"><div class="separation"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px" valign="top">{l s='Files fields:'}</td>
|
||||
<td>
|
||||
{$display_file_labels}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $has_text_labels}
|
||||
<tr>
|
||||
<td colspan="2"><div class="separation"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px" valign="top">{l s='Text fields:'}</td>
|
||||
<td>
|
||||
{$display_text_labels}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td colspan="2" style="text-align:center;">
|
||||
{if $has_file_labels || $has_text_labels}
|
||||
<input type="submit" name="submitProductCustomization" id="submitProductCustomization" value="{l s='Save labels'}" class="button" onclick="this.form.action += '&addproduct&tabs=5';" style="margin-top: 9px" />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
@@ -1,70 +1,108 @@
|
||||
<table cellpadding="5">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<b>{l s='Assign features to this product:'}</b><br />
|
||||
<ul style="margin: 10px 0 0 20px;">
|
||||
<li>{l s='You can specify a value for each relevant feature regarding this product, empty fields will not be displayed.'}</li>
|
||||
<li>{l s='You can either set a specific value, or select among existing pre-defined values you added previously.'}</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="separation"></div><br />
|
||||
|
||||
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:900px;">
|
||||
<tr>
|
||||
<th>{l s='Feature'}</td>
|
||||
<th style="width:30%">{l s='Pre-defined value'}</td>
|
||||
<th style="width:40%"><u>{l s='or'}</u> {l s='Customized value'}</td>
|
||||
</tr>
|
||||
</table>
|
||||
{foreach from=$available_features item=available_feature}
|
||||
<table cellpadding="5" style="width: 900px; margin-top: 10px">
|
||||
<tr>
|
||||
<td>{$available_feature.name}</td>
|
||||
<td style="width: 30%">
|
||||
{if sizeof($available_feature.featureValues)}
|
||||
<select id="feature_{$available_feature.id_feature}_value" name="feature_{$available_feature.id_feature}_value"
|
||||
onchange="$('.custom_{$available_feature.id_feature}_').val('');">
|
||||
<option value="0">--- </option>
|
||||
{foreach from=$available_feature.featureValues item=value}
|
||||
<option value="{$value.id_feature_value}"{if $available_feature.current_item == $value.id_feature_value}selected="selected"{/if} >
|
||||
{$value.value|truncate:40}
|
||||
</option>
|
||||
{/foreach}
|
||||
|
||||
</select>
|
||||
{else}
|
||||
<input type="hidden" name="feature_{$available_feature.id_feature}_value" value="0" />
|
||||
<span style="font-size: 10px; color: #666;">{l s='N/A'} -
|
||||
<a href="{$link->getAdminLink('AdminFeatures')}&addfeature_value&id_feature={$available_feature.id_feature}"
|
||||
style="color: #666; text-decoration: underline;">{l s='Add pre-defined values first'}</a>
|
||||
</span>
|
||||
{/if}
|
||||
</td>
|
||||
<td style="width:40%" class="translatable">
|
||||
{foreach from=$languages item=language}
|
||||
<div class="lang_{$language.id_lang}" style="{if $language.id_lang != $default_form_language}display:none;{/if}float: left;">
|
||||
<textarea class="custom_{$available_feature.id_feature}_" name="custom_{$available_feature.id_feature}_{$language.id_lang}" cols="40" rows="1"
|
||||
onkeyup="if (isArrowKey(event)) return ;$('#feature_{$available_feature.id_feature}_value').val(0);" >{$available_feature.val[$language.id_lang].value|htmlentitiesUTF8|default:""}</textarea>
|
||||
</div>
|
||||
{/foreach}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{foreachelse}
|
||||
<tr><td colspan="3" style="text-align:center;">{l s='No features defined'}</td></tr>
|
||||
{/foreach}
|
||||
|
||||
</table>
|
||||
<div class="separation"></div>
|
||||
<div style="text-align:center;">
|
||||
<a href="{$link->getAdminLink('AdminFeatures')}&addfeature" onclick="return confirm('{l s='You will lose all modifications not saved, you may want to save modifications first?' js=1}');">
|
||||
<img src="../img/admin/add.gif" alt="new_features" title="{l s='Add a new feature'}" /> {l s='Add a new feature'}
|
||||
</a>
|
||||
</div>
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{if isset($product->id)}
|
||||
|
||||
<h4>{l s='Assign features to this product:'}</h4>
|
||||
<div class="separation"></div>
|
||||
<ul>
|
||||
<li>{l s='You can specify a value for each relevant feature regarding this product, empty fields will not be displayed.'}</li>
|
||||
<li>{l s='You can either set a specific value, or select among existing pre-defined values you added previously.'}</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:900px;">
|
||||
<tr>
|
||||
<th>{l s='Feature'}</td>
|
||||
<th style="width:30%">{l s='Pre-defined value'}</td>
|
||||
<th style="width:40%"><u>{l s='or'}</u> {l s='Customized value'}</td>
|
||||
</tr>
|
||||
</table>
|
||||
{foreach from=$available_features item=available_feature}
|
||||
<table cellpadding="5" style="width: 900px; margin-top: 10px">
|
||||
<tr>
|
||||
<td>{$available_feature.name}</td>
|
||||
<td style="width: 30%">
|
||||
{if sizeof($available_feature.featureValues)}
|
||||
<select id="feature_{$available_feature.id_feature}_value" name="feature_{$available_feature.id_feature}_value"
|
||||
onchange="$('.custom_{$available_feature.id_feature}_').val('');">
|
||||
<option value="0">--- </option>
|
||||
{foreach from=$available_feature.featureValues item=value}
|
||||
<option value="{$value.id_feature_value}"{if $available_feature.current_item == $value.id_feature_value}selected="selected"{/if} >
|
||||
{$value.value|truncate:40}
|
||||
</option>
|
||||
{/foreach}
|
||||
|
||||
</select>
|
||||
{else}
|
||||
<input type="hidden" name="feature_{$available_feature.id_feature}_value" value="0" />
|
||||
<span style="font-size: 10px; color: #666;">{l s='N/A'} -
|
||||
<a href="{$link->getAdminLink('AdminFeatures')}&addfeature_value&id_feature={$available_feature.id_feature}"
|
||||
style="color: #666; text-decoration: underline;" class="confirm_leave">{l s='Add pre-defined values first'}</a>
|
||||
</span>
|
||||
{/if}
|
||||
</td>
|
||||
<td style="width:40%" class="translatable">
|
||||
{foreach from=$languages key=k item=language}
|
||||
<div class="lang_{$language.id_lang}" style="{if $language.id_lang != $default_form_language}display:none;{/if}float: left;">
|
||||
<textarea class="custom_{$available_feature.id_feature}_" name="custom_{$available_feature.id_feature}_{$language.id_lang}" cols="40" rows="1"
|
||||
onkeyup="if (isArrowKey(event)) return ;$('#feature_{$available_feature.id_feature}_value').val(0);" >{$available_feature.val[$k].value|htmlentitiesUTF8|default:""}</textarea>
|
||||
</div>
|
||||
{/foreach}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{foreachelse}
|
||||
<tr><td colspan="3" style="text-align:center;">{l s='No features defined'}</td></tr>
|
||||
{/foreach}
|
||||
|
||||
</table>
|
||||
<div class="separation"></div>
|
||||
<div style="text-align:center;">
|
||||
<a href="{$link->getAdminLink('AdminFeatures')}&addfeature" class="confirm_leave">
|
||||
<img src="../img/admin/add.gif" alt="new_features" title="{l s='Add a new feature'}" /> {l s='Add a new feature'}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||
</script>
|
||||
|
||||
{/if}
|
||||
|
||||
@@ -23,285 +23,248 @@
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helper/form/form.tpl"}
|
||||
{block name="script"}</script>
|
||||
<link href="../css/fileuploader.css" rel="stylesheet" type="text/css">
|
||||
<script src="../js/fileuploader.js" type="text/javascript"></script>
|
||||
<script src="../js/jquery/ui/jquery.ui.core.min.js" type="text/javascript"></script>
|
||||
<script src="../js/jquery/ui/jquery.ui.widget.min.js" type="text/javascript"></script>
|
||||
<script src="../js/jquery/ui/jquery.ui.progressbar.min.js" type="text/javascript"></script>
|
||||
<script type="text/javascript" src="../js/admin.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
{block name="autoload_tinyMCE"}
|
||||
// change each by click to load only on click
|
||||
$(".autoload_rte").each(function(e){
|
||||
tinySetup({
|
||||
mode :"exact",
|
||||
editor_selector :"autoload_rte",
|
||||
elements : $(this).attr("id"),
|
||||
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull|cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,undo,redo",
|
||||
theme_advanced_buttons2 : "link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor,|,hr,removeformat,visualaid,|,charmap,media,|,ltr,rtl,|,fullscreen",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_buttons4 : "",
|
||||
setup : function(ed) {
|
||||
|
||||
{* Count the total number of the field *}
|
||||
|
||||
ed.onKeyUp.add(function(ed, e) {
|
||||
tinyMCE.triggerSave();
|
||||
textarea = $('#'+ed.id);
|
||||
max = textarea.parent('div').find('span.counter').attr('max');
|
||||
if (max != 'none')
|
||||
{
|
||||
textarea_value = textarea.val();
|
||||
count = stripHTML(textarea_value).length;
|
||||
rest = max - count;
|
||||
if (rest < 0)
|
||||
textarea.parent('div').find('span.counter').html('<span style="color:red;">{l s='Maximum'} '+max+' {l s=' characters'} : '+rest+'</span>');
|
||||
else
|
||||
textarea.parent('div').find('span.counter').html(' ');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
})
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="defaultForm"}
|
||||
<div>
|
||||
<div class="productTabs">
|
||||
<ul class="tab">
|
||||
{foreach $product_tabs key=numStep item=tab}
|
||||
<li class="tab-row">
|
||||
<a class="tab-page {if $tab.selected}selected{/if}" id="link-{$tab.id}" href="{$tab.href}&updateproduct">{$tab.name}</a>{*todo href when nojs*}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<div>
|
||||
<div class="productTabs">
|
||||
<ul class="tab">
|
||||
{foreach $product_tabs key=numStep item=tab}
|
||||
<li class="tab-row">
|
||||
<a class="tab-page {if $tab.selected}selected{/if}" id="link-{$tab.id}" href="{$tab.href}&updateproduct">{$tab.name}</a>{*todo href when nojs*}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
function showSaveButtons()
|
||||
{
|
||||
$('#desc-product-save').show();
|
||||
$('#desc-product-cancel').show();
|
||||
$('#desc-product-duplicate').show();
|
||||
$('#desc-product-delete').show();
|
||||
$('#desc-product-save-and-stay').show();
|
||||
}
|
||||
|
||||
function hideSaveButtons()
|
||||
{
|
||||
$('#desc-product-save').hide();
|
||||
$('#desc-product-cancel').hide();
|
||||
$('#desc-product-duplicate').hide();
|
||||
$('#desc-product-delete').hide();
|
||||
$('#desc-product-save-and-stay').hide();
|
||||
}
|
||||
|
||||
var toload = new Array();
|
||||
var pos_select = {$pos_select};
|
||||
var tabs_toolbar_save_buttons = [];
|
||||
{foreach $tabs_toolbar_save_buttons key=key item=value}
|
||||
{if $value == true}
|
||||
tabs_toolbar_save_buttons.push('{$key}');
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
$(document).ready(function(){
|
||||
{* submenu binding *}
|
||||
$(".tab-page").click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
// currentId is the current producttab id
|
||||
currentId = $(".productTabs a.selected").attr('id').substr(5);
|
||||
// id is the wanted producttab id
|
||||
id = $(this).attr('id').substr(5);
|
||||
|
||||
// Update submit button value
|
||||
var split_position = id.indexOf('-') + 1;
|
||||
var btn_name = id.substr(split_position);
|
||||
$("#product_form_submit_btn").attr('name', 'submit'+btn_name);
|
||||
|
||||
// Show/hide save buttons
|
||||
if (jQuery.inArray(btn_name, tabs_toolbar_save_buttons) != -1)
|
||||
showSaveButtons();
|
||||
else
|
||||
hideSaveButtons();
|
||||
|
||||
if ($(this).attr("id") != $(".productTabs a.selected").attr('id'))
|
||||
<script type="text/javascript">
|
||||
var toload = new Array();
|
||||
var tabs_preloaded = new Array();
|
||||
$(document).ready(function()
|
||||
{
|
||||
$(".tab-page").removeClass('selected');
|
||||
$("#product-tab-content-"+currentId).hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (confirm(' {l s='Do you really want to reload the current tab (all modifications will be lost)'}'))
|
||||
$("#product-tab-content-"+currentId).html();
|
||||
else
|
||||
return false;
|
||||
}
|
||||
{foreach $tabs_preloaded as $k => $tab}
|
||||
tabs_preloaded['{$k}'] = '{$tab}';
|
||||
{/foreach}
|
||||
|
||||
$("#product-tab-content-wait").show();
|
||||
$('.product-tab-content').each(function(){
|
||||
var id = $(this).attr('id').substr(20);
|
||||
var split_position = id.indexOf('-') + 1;
|
||||
var btn_name = id.substr(split_position);
|
||||
|
||||
if ($("#product-tab-content-"+id).hasClass('not-loaded') || $(this).hasClass('selected'))
|
||||
{
|
||||
myurl = $(this).attr("href")+"&ajax=1";
|
||||
$.ajax({
|
||||
url : myurl,
|
||||
async : true,
|
||||
success :function(data)
|
||||
if (tabs_preloaded[btn_name])
|
||||
if ($("#product-tab-content-"+id).hasClass('not-loaded'))
|
||||
displayTabProductById('#link-'+id, id, false);
|
||||
});
|
||||
|
||||
{if $is_pack}
|
||||
$('#pack_product').attr('checked', 'checked');
|
||||
$('li.tab-row a[id*="VirtualProduct"]').hide();
|
||||
{elseif $product->is_virtual}
|
||||
$('#virtual_product').attr('checked', 'checked');
|
||||
$('li.tab-row a[id*="Pack"]').hide();
|
||||
$('li.tab-row a[id*="Shipping"]').hide();
|
||||
$('#condition').attr('disabled', 'disabled');
|
||||
$('#condition option[value=new]').attr('selected', 'selected');
|
||||
{else}
|
||||
$('#simple_product').attr('checked', 'checked');
|
||||
$('li.tab-row a[id*="Pack"]').hide();
|
||||
$('li.tab-row a[id*="VirtualProduct"]').hide();
|
||||
{/if}
|
||||
|
||||
$('input[name="type_product"]').click(function() {
|
||||
|
||||
// Reset settings
|
||||
$('li.tab-row a[id*="Pack"]').hide();
|
||||
$('li.tab-row a[id*="VirtualProduct"]').hide();
|
||||
$('div.ppack').hide();
|
||||
$('#is_virtual_good').removeAttr('checked');
|
||||
$('div.is_virtual_good').hide();
|
||||
$('#is_virtual').val(0);
|
||||
$("#virtual_good_attributes").hide();
|
||||
|
||||
var val = $(this).val();
|
||||
|
||||
if (val == 1)
|
||||
{
|
||||
$('li.tab-row a[id*="Pack"]').show();
|
||||
$('#ppack').val(1).attr('checked', true).attr('disabled', 'disabled');
|
||||
$('#ppackdiv').show();
|
||||
$('li.tab-row a[id*="Shipping"]').show();
|
||||
$('#condition').removeAttr('disabled');
|
||||
$('#condition option[value=new]').removeAttr('selected');
|
||||
$('.stockForVirtualProduct').show();
|
||||
}
|
||||
else if (val == 2)
|
||||
{
|
||||
$('li.tab-row a[id*="VirtualProduct"]').show();
|
||||
$('#is_virtual_good').attr('checked', true);
|
||||
$('#virtual_good').show();
|
||||
$('#is_virtual').val(1);
|
||||
$("#virtual_good_attributes").show();
|
||||
$('li.tab-row a[id*="Shipping"]').hide();
|
||||
$('#condition').attr('disabled', 'disabled');
|
||||
$('#condition option[value=refurbished]').removeAttr('selected');
|
||||
$('#condition option[value=used]').removeAttr('selected');
|
||||
$('.stockForVirtualProduct').hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('li.tab-row a[id*="Shipping"]').show();
|
||||
$('#condition').removeAttr('disabled');
|
||||
$('#condition option[value=new]').removeAttr('selected');
|
||||
$('.stockForVirtualProduct').show();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('#desc-product-newCombination').hide();
|
||||
|
||||
{* submenu binding *}
|
||||
$(".tab-page").click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
// currentId is the current product tab id
|
||||
currentId = $(".productTabs a.selected").attr('id').substr(5);
|
||||
// id is the wanted producttab id
|
||||
id = $(this).attr('id').substr(5);
|
||||
|
||||
// Update submit button value
|
||||
var split_position = id.indexOf('-') + 1;
|
||||
var btn_name = id.substr(split_position);
|
||||
|
||||
$('#key_tab').val(btn_name);
|
||||
|
||||
if ($(this).attr("id") != $(".productTabs a.selected").attr('id'))
|
||||
{
|
||||
$(".tab-page").removeClass('selected');
|
||||
$("#product-tab-content-"+currentId).hide();
|
||||
}
|
||||
|
||||
$("#product-tab-content-wait").show();
|
||||
|
||||
if ($("#product-tab-content-"+id).hasClass('not-loaded'))
|
||||
displayTabProductById(this, id, true);
|
||||
else
|
||||
{
|
||||
$("#product-tab-content-"+id).html(data);
|
||||
$("#product-tab-content-"+id).removeClass('not-loaded');
|
||||
$("#product-tab-content-"+id).show();
|
||||
$("#link-"+id).addClass('selected');
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#product-tab-content-"+id).show();
|
||||
$("#link-"+id).addClass('selected');
|
||||
}
|
||||
$("#product-tab-content-wait").hide();
|
||||
$("#product-tab-content-wait").hide();
|
||||
|
||||
var languages = new Array();
|
||||
if (id == "4-Combinations")
|
||||
populate_attrs();
|
||||
if (id == '7-Attachments')
|
||||
{
|
||||
$("#addAttachment").live('click', function() {
|
||||
return !$("#selectAttachment2 option:selected").remove().appendTo("#selectAttachment1");
|
||||
});
|
||||
$("#removeAttachment").live('click', function() {
|
||||
return !$("#selectAttachment1 option:selected").remove().appendTo("#selectAttachment2");
|
||||
});
|
||||
$("#product").submit(function() {
|
||||
$("#selectAttachment1 option").each(function(i) {
|
||||
$(this).attr("selected", "selected");
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
{if $show_product_tab_content}
|
||||
$("div.productTabs a[id$=-{$show_product_tab_content}]").click();
|
||||
{/if}
|
||||
});
|
||||
|
||||
</script>
|
||||
{***********************************************}
|
||||
{********** TO CHECK !!!!!!!!!!!!!!! ***********}
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
ThickboxI18nImage = "{l s='Image'}";
|
||||
ThickboxI18nOf = "{l s='of'}";
|
||||
ThickboxI18nClose = "{l s='Close'}";
|
||||
ThickboxI18nOrEscKey = "{l s='(or "Esc")'}";
|
||||
ThickboxI18nNext = "{l s='Next >'}";
|
||||
ThickboxI18nPrev = "{l s='< Previous'}";
|
||||
tb_pathToImage = "../img/loadingAnimation.gif";
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
function toggleVirtualProduct(elt)
|
||||
{
|
||||
$("#is_virtual_file_product").hide();
|
||||
$("#virtual_good_attributes").hide();
|
||||
|
||||
if (elt.checked)
|
||||
{
|
||||
$('#virtual_good').show('slow');
|
||||
$('#virtual_good_more').show('slow');
|
||||
getE('out_of_stock_1').checked = 'checked';
|
||||
getE('out_of_stock_2').disabled = 'disabled';
|
||||
getE('out_of_stock_3').disabled = 'disabled';
|
||||
getE('label_out_of_stock_2').setAttribute('for', '');
|
||||
getE('label_out_of_stock_3').setAttribute('for', '');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#virtual_good').hide('slow');
|
||||
$('#virtual_good_more').hide('slow');
|
||||
getE('out_of_stock_2').disabled = false;
|
||||
getE('out_of_stock_3').disabled = false;
|
||||
getE('label_out_of_stock_2').setAttribute('for', 'out_of_stock_2');
|
||||
getE('label_out_of_stock_3').setAttribute('for', 'out_of_stock_3');
|
||||
}
|
||||
}
|
||||
|
||||
function uploadFile()
|
||||
{
|
||||
$.ajaxFileUpload (
|
||||
{
|
||||
url:'./uploadProductFile.php',
|
||||
secureuri:false,
|
||||
fileElementId:'virtual_product_file',
|
||||
dataType: 'xml',
|
||||
success: function (data, status)
|
||||
var languages = new Array();
|
||||
if (btn_name == "Combinations")
|
||||
{
|
||||
data = data.getElementsByTagName('return')[0];
|
||||
var result = data.getAttribute("result");
|
||||
var msg = data.getAttribute("msg");
|
||||
var fileName = data.getAttribute("filename")
|
||||
if(result == "error")
|
||||
$("#upload-confirmation").html('<p>error: ' + msg + '</p>');
|
||||
else
|
||||
{
|
||||
$('#virtual_product_file').remove();
|
||||
$('#virtual_product_file_label').hide();
|
||||
$('#file_missing').hide();
|
||||
$('#delete_downloadable_product').show();
|
||||
$('#virtual_product_name').attr('value', fileName);
|
||||
$('#upload-confirmation').html(
|
||||
'<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">{l s='The file'} "' + fileName + '" {l s='has successfully been uploaded'}</a>' +
|
||||
'<input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="' + msg + '" />');
|
||||
}
|
||||
$('#desc-product-new').hide();
|
||||
$('#desc-product-save-and-stay').hide();
|
||||
$('#desc-product-save').hide();
|
||||
$('#desc-product-newCombination').show();
|
||||
populate_attrs();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function uploadFile2()
|
||||
{
|
||||
var link = '';
|
||||
$.ajaxFileUpload (
|
||||
{
|
||||
url:'./uploadProductFileAttribute.php',
|
||||
secureuri:false,
|
||||
fileElementId:'virtual_product_file_attribute',
|
||||
dataType: 'xml',
|
||||
success: function (data, status)
|
||||
else if (btn_name == "Attachments")
|
||||
{
|
||||
data = data.getElementsByTagName('return')[0];
|
||||
var result = data.getAttribute("result");
|
||||
var msg = data.getAttribute("msg");
|
||||
var fileName = data.getAttribute("filename");
|
||||
if(result == "error")
|
||||
$("#upload-confirmation2").html('<p>error: ' + msg + '</p>');
|
||||
else
|
||||
{
|
||||
$('#virtual_product_file_attribute').remove();
|
||||
$('#virtual_product_file_label').hide();
|
||||
$('#file_missing').hide();
|
||||
$('#delete_downloadable_product_attribute').show();
|
||||
$('#upload-confirmation2').html(
|
||||
'<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">{l s='The file'} "' + fileName + '" {l s='has successfully been uploaded'}</a>' +
|
||||
'<input type="hidden" id="virtual_product_filename_attribute" name="virtual_product_filename_attribute" value="' + msg + '" />');
|
||||
$('#virtual_product_name_attribute').attr('value', fileName);
|
||||
|
||||
link = $("#delete_downloadable_product_attribute").attr('href');
|
||||
$("#delete_downloadable_product_attribute").attr('href', link+"&file="+msg);
|
||||
}
|
||||
$('#desc-product-save-and-stay').hide();
|
||||
$('#desc-product-save').hide();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
else
|
||||
{
|
||||
$('#desc-product-newCombination').hide();
|
||||
$('#desc-product-save-and-stay').show();
|
||||
$('#desc-product-save').show();
|
||||
}
|
||||
});
|
||||
|
||||
<form id="product_form" action="{$form_action}" method="post" enctype="multipart/form-data" name="product">
|
||||
<input type="hidden" name="id_product" value="{$id_product}" />
|
||||
<input type="hidden" name="tabs" id="tabs" value="0" />
|
||||
<div class="tab-pane" id="tabPane1">
|
||||
{if !$product->active}
|
||||
<div class="warn draft" >
|
||||
<p>
|
||||
<span style="float: left">
|
||||
{l s='Your product will be saved as draft'}</span>
|
||||
<span style="float:right"><a href="#" class="button" style="display: block" onclick="submitAddProductAndPreview()" >{l s='Save and preview'}</a></span>
|
||||
<input type="hidden" name="fakeSubmitAddProductAndPreview" id="fakeSubmitAddProductAndPreview" />
|
||||
<br />
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
{* all input are here *}
|
||||
<div id="product-tab-content-wait" style="display:none" >{l s='loading ...'}</div>
|
||||
{if !$newproduct}
|
||||
{foreach $product_tabs key=numStep item=tab}
|
||||
<div id="product-tab-content-{$tab.id}" class="{if !$tab.selected}not-loaded{/if} product-tab-content" {if !$tab.selected}style="display:none"{/if}>
|
||||
{if $tab.selected}{$custom_form}{/if}
|
||||
{if $show_product_tab_content}
|
||||
$("div.productTabs a[id$=-{$show_product_tab_content}]").click();
|
||||
{/if}
|
||||
|
||||
$('.confirm_leave').live('click', function(){
|
||||
// Double quotes are necessary when the translated string has single quotes
|
||||
return confirm("{l s='You will lose all unsaved modifications, do you want to proceed?' js=1}");
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
{***********************************************}
|
||||
{********** TO CHECK !!!!!!!!!!!!!!! ***********}
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
ThickboxI18nImage = "{l s='Image'}";
|
||||
ThickboxI18nOf = "{l s='of'}";
|
||||
ThickboxI18nClose = "{l s='Close'}";
|
||||
ThickboxI18nOrEscKey = "{l s='(or "Esc")'}";
|
||||
ThickboxI18nNext = "{l s='Next >'}";
|
||||
ThickboxI18nPrev = "{l s='< Previous'}";
|
||||
tb_pathToImage = "../img/loadingAnimation.gif";
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<form id="product_form" action="{$form_action}" method="post" enctype="multipart/form-data" name="product">
|
||||
<input type="hidden" name="id_product" value="{$id_product}" />
|
||||
<div class="tab-pane" id="tabPane1">
|
||||
{if !$product->active}
|
||||
<div class="warn draft" >
|
||||
<p>
|
||||
<span style="float: left">
|
||||
{l s='Your product will be saved as draft'}</span>
|
||||
<span style="float:right"><a href="#" class="button" style="display: block" onclick="submitAddProductAndPreview()" >{l s='Save and preview'}</a></span>
|
||||
<input type="hidden" name="fakeSubmitAddProductAndPreview" id="fakeSubmitAddProductAndPreview" />
|
||||
<br />
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
{* all input are here *}
|
||||
<div id="product-tab-content-wait" style="display:none" >{l s='loading ...'}</div>
|
||||
{foreach $product_tabs key=numStep item=tab}
|
||||
<div id="product-tab-content-{$tab.id}" class="{if !$tab.selected}not-loaded{/if} product-tab-content" {if !$tab.selected}style="display:none"{/if}>
|
||||
{if $tab.selected}
|
||||
{$custom_form}
|
||||
{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/foreach}
|
||||
{else}
|
||||
<div id="product-tab-content-1" class="product-tab-content">{$custom_form}</div>
|
||||
{/if}
|
||||
</div>
|
||||
<input type="hidden" name="id_product_attribute" id="id_product_attribute" value="0" />
|
||||
<input id="product_form_submit_btn" type="submit" value="{l s='Save'}" name="submitAddproduct" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="hidden" name="id_product_attribute" id="id_product_attribute" value="0" />
|
||||
<input type="hidden" name="key_tab" id="key_tab" value="Informations" />
|
||||
<input id="product_form_submit_btn" type="submit" value="{l s='Save'}" name="submitAddproduct" class="button" />
|
||||
</form>
|
||||
|
||||
<br/>
|
||||
{/block}
|
||||
{*a href="{$link->getAdminLink('AdminCatalog')}"><img src="../img/admin/arrow2.gif" />{l s='Back to list'}</a><br/>
|
||||
*}
|
||||
|
||||
|
||||
@@ -1,12 +1,46 @@
|
||||
<div class="tab-page" id="step2">
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{if isset($id_product) && isset($product)}
|
||||
<h4 class="tab" >2. {l s='Images'} (<span id="countImage">{$countImages}</span>)</h4>
|
||||
<table cellpadding="5">
|
||||
<tr>
|
||||
<td><b>{if isset($id_image)}{l s='Edit this product image'}{else}{l s='Add a new image to this product'}{/if}</b></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="separation"></div><br />
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<h4>{if isset($id_image)}{l s='Edit this product image'}{else}{l s='Add a new image to this product'}{/if}</h4> <div class="separation"></div><br />
|
||||
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='File:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
@@ -17,8 +51,8 @@
|
||||
</div>
|
||||
<div id="progressBarImage" class="progressBarImage"></div>
|
||||
<div id="showCounter" style="display:none;"><span id="imageUpload">0</span><span id="imageTotal">0</span></div>
|
||||
<p class="float" style="clear: both;">
|
||||
{l s='Format:'} JPG, GIF, PNG. {l s='Filesize:'} {$max_image_size / 1000}{l s='Kb max.'}
|
||||
<p class="preference_description" style="clear: both;">
|
||||
{l s='Format:'} JPG, GIF, PNG. {l s='Filesize:'} {$max_image_size|string_format:"%.2f"}{l s='Kb max.'}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -51,254 +85,261 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table id="lineType" style="display:none;">
|
||||
<tr id="image_id">
|
||||
<td style="padding: 4px;">
|
||||
<a href="image_path.jpg" target="_blank">
|
||||
<img src="{$smarty.const._THEME_PROD_DIR_}en-default-small.jpg" alt="image_id" title="image_id" />
|
||||
</a>
|
||||
</td>
|
||||
<td id="td_image_id" class="pointer dragHandle center positionImage">
|
||||
image_position
|
||||
</td>
|
||||
{if $shops}
|
||||
{foreach from=$shops item=shop}
|
||||
<td class="center">
|
||||
<input type="checkbox" class="image_shop" name="id_image" id="{$shop.id_shop}image_id" value="{$shop.id_shop}" />
|
||||
</td>
|
||||
{/foreach}
|
||||
{/if}
|
||||
<td class="center cover"><a href="#">
|
||||
<img class="covered" src="../img/admin/blank.gif" alt="e" /></a>
|
||||
</td>
|
||||
<td class="center">
|
||||
<a href="#" class="delete_product_image" >
|
||||
<img src="../img/admin/delete.gif" alt="{l s='Delete this image'}" title="{l s='Delete this image'}" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<script type="text/javascript" src="../js/jquery/plugins/jquery.tablednd.js"></script>
|
||||
<script type="text/javascript">
|
||||
var upbutton = '{l s='Upload a file'}';
|
||||
var token = '{$token}';
|
||||
var come_from = '{$table}';
|
||||
var id_tmp = 0;
|
||||
{literal}
|
||||
//Ready Function
|
||||
$(document).ready(function(){
|
||||
{/literal}
|
||||
{foreach from=$images item=image}
|
||||
assoc = {literal}"{"{/literal};
|
||||
|
||||
<table id="lineType" style="display:none;">
|
||||
<tr id="image_id">
|
||||
<td style="padding: 4px;">
|
||||
<a href="image_path.jpg" target="_blank">
|
||||
<img src="{$smarty.const._THEME_PROD_DIR_}en-default-small.jpg" alt="image_id" title="image_id" />
|
||||
</a>
|
||||
</td>
|
||||
<td id="td_image_id" class="pointer dragHandle center positionImage">
|
||||
image_position
|
||||
</td>
|
||||
{if $shops}
|
||||
{foreach from=$shops item=shop}
|
||||
assoc += '"{$shop.id_shop}" : {if $image->isAssociatedToShop($shop.id_shop)}1{else}0{/if},';
|
||||
<td class="center">
|
||||
<input type="checkbox" class="image_shop" name="id_image" id="{$shop.id_shop}image_id" value="{$shop.id_shop}" />
|
||||
</td>
|
||||
{/foreach}
|
||||
{/if}
|
||||
if (assoc != {literal}"{"{/literal})
|
||||
{
|
||||
assoc = assoc.slice(0, -1);
|
||||
assoc += {literal}"}"{/literal};
|
||||
}
|
||||
else
|
||||
assoc = false;
|
||||
imageLine({$image->id}, "{$image->getExistingImgPath()}", {$image->position}, "{if $image->cover}enabled{else}forbbiden{/if}", assoc);
|
||||
{/foreach}
|
||||
<td class="center cover"><a href="#">
|
||||
<img class="covered" src="../img/admin/blank.gif" alt="e" /></a>
|
||||
</td>
|
||||
<td class="center">
|
||||
<a href="#" class="delete_product_image" >
|
||||
<img src="../img/admin/delete.gif" alt="{l s='Delete this image'}" title="{l s='Delete this image'}" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
var upbutton = '{l s='Upload a file'}';
|
||||
var token = '{$token}';
|
||||
var come_from = '{$table}';
|
||||
var id_tmp = 0;
|
||||
{literal}
|
||||
$("#imageTable").tableDnD(
|
||||
{
|
||||
onDrop: function(table, row) {
|
||||
current = $(row).attr("id");
|
||||
stop = false;
|
||||
image_up = "{";
|
||||
$("#imageList").find("tr").each(function(i) {
|
||||
$("#td_" + $(this).attr("id")).html(i + 1);
|
||||
if ($(this).attr("id") == current)
|
||||
{
|
||||
image_up += '"' + $(this).attr("id") + '" : ' + (i + 1) + ',';
|
||||
stop = true;
|
||||
}
|
||||
if (!stop || (i + 1) == 2)
|
||||
image_up += '"' + $(this).attr("id") + '" : ' + (i + 1) + ',';
|
||||
});
|
||||
image_up = image_up.slice(0, -1);
|
||||
image_up += "}";
|
||||
updateImagePositon(image_up);
|
||||
}
|
||||
});
|
||||
var filecheck = 1;
|
||||
var uploader = new qq.FileUploader(
|
||||
{
|
||||
element: document.getElementById("file-uploader"),
|
||||
action: "ajax-tab.php",
|
||||
debug: false,
|
||||
params: {
|
||||
id_product : {/literal}{$id_product}{literal},
|
||||
id_category : {/literal}{$id_category_default}{literal},
|
||||
token : "{/literal}{$token}{literal}",
|
||||
tab : "AdminProducts",
|
||||
action : 'addImage',
|
||||
ajax: 1,
|
||||
},
|
||||
onComplete: function(id, fileName, responseJSON)
|
||||
{
|
||||
var percent = ((filecheck * 100) / nbfile);
|
||||
$("#progressBarImage").progressbar({value: percent});
|
||||
if (percent != 100)
|
||||
//Ready Function
|
||||
$(document).ready(function(){
|
||||
{/literal}
|
||||
{foreach from=$images item=image}
|
||||
assoc = {literal}"{"{/literal};
|
||||
{if $shops}
|
||||
{foreach from=$shops item=shop}
|
||||
assoc += '"{$shop.id_shop}" : {if $image->isAssociatedToShop($shop.id_shop)}1{else}0{/if},';
|
||||
{/foreach}
|
||||
{/if}
|
||||
if (assoc != {literal}"{"{/literal})
|
||||
{
|
||||
$("#imageUpload").html(parseInt(filecheck));
|
||||
$("#imageTotal").html(" / " + parseInt(nbfile) + " {/literal}{l s='Images'}{literal}");
|
||||
$("#progressBarImage").show();
|
||||
$("#showCounter").show();
|
||||
assoc = assoc.slice(0, -1);
|
||||
assoc += {literal}"}"{/literal};
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#progressBarImage").progressbar({value: 0});
|
||||
$("#progressBarImage").hide();
|
||||
$("#showCounter").hide();
|
||||
nbfile = 0;
|
||||
filecheck = 0;
|
||||
}
|
||||
if (responseJSON.status == 'ok')
|
||||
{
|
||||
cover = "forbbiden";
|
||||
if (responseJSON.cover == "1")
|
||||
cover = "enabled";
|
||||
imageLine(responseJSON.id, responseJSON.path, responseJSON.position, cover, false)
|
||||
$("#imageTable tr:last").after(responseJSON.html);
|
||||
$("#countImage").html(parseInt($("#countImage").html()) + 1);
|
||||
$("#img" + id).remove();
|
||||
$("#imageTable").tableDnDUpdate();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#img" + id).addClass("red");
|
||||
$("#img" + id + " .errorImg").html(responseJSON.error);
|
||||
$("#img" + id + " .errorImg").show();
|
||||
}
|
||||
filecheck++;
|
||||
},
|
||||
onSubmit: function(id, filename)
|
||||
assoc = false;
|
||||
imageLine({$image->id}, "{$image->getExistingImgPath()}", {$image->position}, "{if $image->cover}enabled{else}forbbiden{/if}", assoc);
|
||||
{/foreach}
|
||||
{literal}
|
||||
$("#imageTable").tableDnD(
|
||||
{
|
||||
$("#imageTable").show();
|
||||
$("#listImage").append("<li id='img"+id+"'><div class=\"float\" >" + filename + "</div></div><a style=\"margin-left:10px\"href=\"javascript:delQueue(" + id +");\"><img src=\"../img/admin/disabled.gif\" alt=\"\" border=\"0\"></a><p class=\"errorImg\"></p></li>");
|
||||
}
|
||||
});
|
||||
|
||||
$('.delete_product_image').die().live('click', function(e)
|
||||
{
|
||||
e.preventDefault();
|
||||
id = $(this).parent().parent().attr('id');
|
||||
if (confirm("{/literal}{l s='Are you sure?'}{literal}"))
|
||||
$.ajax(
|
||||
{
|
||||
url : "ajax-tab.php",
|
||||
data : {"action":"deleteProductImage",
|
||||
"id_image":id,
|
||||
"id_product" : {/literal}{$id_product}{literal},
|
||||
"id_category" : {/literal}{$id_category_default}{literal},
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"tab" : "AdminProducts",
|
||||
"ajax" : 1 },
|
||||
success : function (data)
|
||||
{
|
||||
data = jQuery.parseJSON(data);
|
||||
if (data)
|
||||
{
|
||||
cover = 0;
|
||||
if(data.status == 'ok')
|
||||
{
|
||||
if ($("#" + id).find(".covered").attr("src") == "../img/admin/enabled.gif")
|
||||
cover = 1;
|
||||
$("#" + id).remove();
|
||||
}
|
||||
if (cover)
|
||||
$("#imageTable tr").eq(1).find(".covered").attr("src", "../img/admin/enabled.gif");
|
||||
$("#countImage").html(parseInt($("#countImage").html()) - 1);
|
||||
refreshImagePositions($("#imageTable"));
|
||||
onDrop: function(table, row) {
|
||||
current = $(row).attr("id");
|
||||
stop = false;
|
||||
image_up = "{";
|
||||
$("#imageList").find("tr").each(function(i) {
|
||||
$("#td_" + $(this).attr("id")).html(i + 1);
|
||||
if ($(this).attr("id") == current)
|
||||
{
|
||||
image_up += '"' + $(this).attr("id") + '" : ' + (i + 1) + ',';
|
||||
stop = true;
|
||||
}
|
||||
if (!stop || (i + 1) == 2)
|
||||
image_up += '"' + $(this).attr("id") + '" : ' + (i + 1) + ',';
|
||||
});
|
||||
image_up = image_up.slice(0, -1);
|
||||
image_up += "}";
|
||||
updateImagePositon(image_up);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('.covered').die().live('click', function(e)
|
||||
{
|
||||
e.preventDefault();
|
||||
id = $(this).parent().parent().parent().attr('id');
|
||||
$("#imageList .cover img").each( function(i){
|
||||
$(this).attr("src", $(this).attr("src").replace("enabled", "forbbiden"));
|
||||
});
|
||||
$(this).attr("src", $(this).attr("src").replace("forbbiden", "enabled"));
|
||||
doAdminAjax({
|
||||
"action":"UpdateCover",
|
||||
"id_image":id,
|
||||
"id_product" : {/literal}{$id_product}{literal},
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"controller" : "AdminProducts",
|
||||
"ajax" : 1 }
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
$('.image_shop').die().live('click', function()
|
||||
{
|
||||
active = false;
|
||||
if ($(this).attr("checked"))
|
||||
active = true;
|
||||
id = $(this).parent().parent().attr('id');
|
||||
id_shop = $(this).attr("id").replace(id, "");
|
||||
doAdminAjax(
|
||||
var filecheck = 1;
|
||||
var uploader = new qq.FileUploader(
|
||||
{
|
||||
"action":"UpdateProductImageShopAsso",
|
||||
"id_image":id,
|
||||
"id_shop": id_shop,
|
||||
"active":active,
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"tab" : "AdminProducts",
|
||||
"ajax" : 1
|
||||
});
|
||||
});
|
||||
|
||||
//function
|
||||
function updateImagePositon(json)
|
||||
{
|
||||
doAdminAjax(
|
||||
{
|
||||
"action":"updateImagePosition",
|
||||
"json":json,
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"tab" : "AdminProducts",
|
||||
"ajax" : 1
|
||||
element: document.getElementById("file-uploader"),
|
||||
action: "ajax-tab.php",
|
||||
debug: false,
|
||||
params: {
|
||||
id_product : {/literal}{$id_product}{literal},
|
||||
id_category : {/literal}{$id_category_default}{literal},
|
||||
token : "{/literal}{$token}{literal}",
|
||||
tab : "AdminProducts",
|
||||
action : 'addImage',
|
||||
ajax: 1,
|
||||
},
|
||||
onComplete: function(id, fileName, responseJSON)
|
||||
{
|
||||
var percent = ((filecheck * 100) / nbfile);
|
||||
$("#progressBarImage").progressbar({value: percent});
|
||||
if (percent != 100)
|
||||
{
|
||||
$("#imageUpload").html(parseInt(filecheck));
|
||||
$("#imageTotal").html(" / " + parseInt(nbfile) + " {/literal}{l s='Images'}{literal}");
|
||||
$("#progressBarImage").show();
|
||||
$("#showCounter").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#progressBarImage").progressbar({value: 0});
|
||||
$("#progressBarImage").hide();
|
||||
$("#showCounter").hide();
|
||||
nbfile = 0;
|
||||
filecheck = 0;
|
||||
}
|
||||
if (responseJSON.status == 'ok')
|
||||
{
|
||||
cover = "forbbiden";
|
||||
if (responseJSON.cover == "1")
|
||||
cover = "enabled";
|
||||
imageLine(responseJSON.id, responseJSON.path, responseJSON.position, cover, false)
|
||||
$("#imageTable tr:last").after(responseJSON.html);
|
||||
$("#countImage").html(parseInt($("#countImage").html()) + 1);
|
||||
$("#img" + id).remove();
|
||||
$("#imageTable").tableDnDUpdate();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#img" + id).addClass("red");
|
||||
$("#img" + id + " .errorImg").html(responseJSON.error);
|
||||
$("#img" + id + " .errorImg").show();
|
||||
}
|
||||
filecheck++;
|
||||
},
|
||||
onSubmit: function(id, filename)
|
||||
{
|
||||
$("#imageTable").show();
|
||||
$("#listImage").append("<li id='img"+id+"'><div class=\"float\" >" + filename + "</div></div><a style=\"margin-left:10px\"href=\"javascript:delQueue(" + id +");\"><img src=\"../img/admin/disabled.gif\" alt=\"\" border=\"0\"></a><p class=\"errorImg\"></p></li>");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function delQueue(id)
|
||||
{
|
||||
$("#img" + id).fadeOut("slow");
|
||||
$("#img" + id).remove();
|
||||
}
|
||||
|
||||
function imageLine(id, path, position, cover, shops)
|
||||
{
|
||||
line = $("#lineType").html();
|
||||
line = line.replace(/image_id/g, id);
|
||||
line = line.replace(/en-default/g, path);
|
||||
line = line.replace(/image_position/g, position);
|
||||
line = line.replace(/blank/g, cover);
|
||||
line = line.replace("<tbody>", "");
|
||||
line = line.replace("</tbody>", "");
|
||||
if (shops != false)
|
||||
/**
|
||||
* on success function
|
||||
*/
|
||||
function afterDeleteProductImage(data)
|
||||
{
|
||||
tmp = jQuery.parseJSON(shops);
|
||||
$.each(tmp, function(key, value){
|
||||
if (value == 1)
|
||||
line = line.replace('id="' + key + '' + id + '"','id="' + key + '' + id + '" checked=checked');
|
||||
});
|
||||
data = $.parseJSON(data);
|
||||
if (data)
|
||||
{
|
||||
cover = 0;
|
||||
id = data.content.id;
|
||||
if(data.status == 'ok')
|
||||
{
|
||||
if ($("#" + id).find(".covered").attr("src") == "../img/admin/enabled.gif")
|
||||
cover = 1;
|
||||
$("#" + id).remove();
|
||||
}
|
||||
if (cover)
|
||||
$("#imageTable tr").eq(1).find(".covered").attr("src", "../img/admin/enabled.gif");
|
||||
$("#countImage").html(parseInt($("#countImage").html()) - 1);
|
||||
refreshImagePositions($("#imageTable"));
|
||||
|
||||
showSuccessMessage(data.confirmations);
|
||||
|
||||
}
|
||||
}
|
||||
$("#imageList").append(line);
|
||||
}
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
|
||||
$('.delete_product_image').die().live('click', function(e)
|
||||
{
|
||||
e.preventDefault();
|
||||
id = $(this).parent().parent().attr('id');
|
||||
if (confirm("{/literal}{l s='Are you sure?' js=1}{literal}"))
|
||||
doAdminAjax({
|
||||
"action":"deleteProductImage",
|
||||
"id_image":id,
|
||||
"id_product" : {/literal}{$id_product}{literal},
|
||||
"id_category" : {/literal}{$id_category_default}{literal},
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"tab" : "AdminProducts",
|
||||
"ajax" : 1 }, afterDeleteProductImage
|
||||
);
|
||||
});
|
||||
|
||||
$('.covered').die().live('click', function(e)
|
||||
{
|
||||
e.preventDefault();
|
||||
id = $(this).parent().parent().parent().attr('id');
|
||||
$("#imageList .cover img").each( function(i){
|
||||
$(this).attr("src", $(this).attr("src").replace("enabled", "forbbiden"));
|
||||
});
|
||||
$(this).attr("src", $(this).attr("src").replace("forbbiden", "enabled"));
|
||||
doAdminAjax({
|
||||
"action":"UpdateCover",
|
||||
"id_image":id,
|
||||
"id_product" : {/literal}{$id_product}{literal},
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"controller" : "AdminProducts",
|
||||
"ajax" : 1 }
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
$('.image_shop').die().live('click', function()
|
||||
{
|
||||
active = false;
|
||||
if ($(this).attr("checked"))
|
||||
active = true;
|
||||
id = $(this).parent().parent().attr('id');
|
||||
id_shop = $(this).attr("id").replace(id, "");
|
||||
doAdminAjax(
|
||||
{
|
||||
"action":"UpdateProductImageShopAsso",
|
||||
"id_image":id,
|
||||
"id_shop": id_shop,
|
||||
"active":active,
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"tab" : "AdminProducts",
|
||||
"ajax" : 1
|
||||
});
|
||||
});
|
||||
|
||||
//function
|
||||
function updateImagePositon(json)
|
||||
{
|
||||
doAdminAjax(
|
||||
{
|
||||
"action":"updateImagePosition",
|
||||
"json":json,
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
"tab" : "AdminProducts",
|
||||
"ajax" : 1
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function delQueue(id)
|
||||
{
|
||||
$("#img" + id).fadeOut("slow");
|
||||
$("#img" + id).remove();
|
||||
}
|
||||
|
||||
function imageLine(id, path, position, cover, shops)
|
||||
{
|
||||
line = $("#lineType").html();
|
||||
line = line.replace(/image_id/g, id);
|
||||
line = line.replace(/en-default/g, path);
|
||||
line = line.replace(/image_position/g, position);
|
||||
line = line.replace(/blank/g, cover);
|
||||
line = line.replace("<tbody>", "");
|
||||
line = line.replace("</tbody>", "");
|
||||
if (shops != false)
|
||||
{
|
||||
tmp = jQuery.parseJSON(shops);
|
||||
$.each(tmp, function(key, value){
|
||||
if (value == 1)
|
||||
line = line.replace('id="' + key + '' + id + '"','id="' + key + '' + id + '" checked=checked');
|
||||
});
|
||||
}
|
||||
$("#imageList").append(line);
|
||||
}
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
@@ -1,10 +1,37 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<div class="translatable">
|
||||
{foreach from=$languages item=language}
|
||||
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display:none;{/if}float: left;">
|
||||
<input size="30" type="text" id="{$input_name}_{$language.id_lang}"
|
||||
name="{$input_name}_{$language.id_lang}"
|
||||
value="{$input_value[$language.id_lang]|htmlentitiesUTF8|default:''}"
|
||||
/>
|
||||
onchange="updateFriendlyURL();"
|
||||
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();"/>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
@@ -1,24 +1,51 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{extends file="helper/list/list_header.tpl"}
|
||||
|
||||
{block name=leadin}
|
||||
{if isset($category_tree)}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('#go_to_categ').bind('change', function(){
|
||||
var base_url = '{$base_url}';
|
||||
if (this.value !== "")
|
||||
location.href = base_url + '&id_category=' + parseInt(this.value);
|
||||
else
|
||||
location.href = base_url;
|
||||
{if isset($category_tree)}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('#go_to_categ').bind('change', function(){
|
||||
var base_url = '{$base_url}';
|
||||
if (this.value !== "")
|
||||
location.href = base_url + '&id_category=' + parseInt(this.value);
|
||||
else
|
||||
location.href = base_url;
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{l s='Go to category:'}
|
||||
<select id="go_to_categ" name="go_to_categ">
|
||||
{foreach from=$category_tree item=categ}
|
||||
<option value="{$categ->id}" {if $categ->selected}selected="selected"{/if} >
|
||||
{$categ->dashes}{$categ->name}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/if}
|
||||
</script>
|
||||
{l s='Go to category:'}
|
||||
<select id="go_to_categ" name="go_to_categ">
|
||||
{foreach from=$category_tree item=categ}
|
||||
<option value="{$categ->id}" {if $categ->selected}selected="selected"{/if} >
|
||||
{$categ->dashes}{$categ->name}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
212
admin-dev/themes/template/products/pack.tpl
Normal file
@@ -0,0 +1,212 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 11204 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var msg_select_one = '{l s='Thanks to select at least one product.' js=1}';
|
||||
var msg_set_quantity = '{l s='Thanks to set a quantity to add a product.' js=1}';
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
|
||||
if ($('#ppack').attr('checked'))
|
||||
{
|
||||
$('#ppack').attr('disabled', 'disabled');
|
||||
$('#ppackdiv').show();
|
||||
}
|
||||
|
||||
$('div.ppack').hide();
|
||||
|
||||
$('#curPackItemName').autocomplete('ajax_products_list.php', {
|
||||
delay: 100,
|
||||
minChars: 1,
|
||||
autoFill: true,
|
||||
max:20,
|
||||
matchContains: true,
|
||||
mustMatch:true,
|
||||
scroll:false,
|
||||
cacheLength:0,
|
||||
// param multipleSeparator:'||' ajouté à cause de bug dans lib autocomplete
|
||||
multipleSeparator:'||',
|
||||
formatItem: function(item) {
|
||||
return item[1]+' - '+item[0];
|
||||
}
|
||||
}).result(function(event, item){
|
||||
$('#curPackItemId').val(item[1]);
|
||||
});
|
||||
|
||||
$('#curPackItemName').setOptions({
|
||||
extraParams: {
|
||||
excludeIds : getSelectedIds(),
|
||||
excludeVirtuals : 1
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function addPackItem()
|
||||
{
|
||||
var curPackItemId = $('#curPackItemId').val();
|
||||
var curPackItemName = $('#curPackItemName').val();
|
||||
var curPackItemQty = $('#curPackItemQty').val();
|
||||
if (curPackItemId == '' || curPackItemName == '')
|
||||
{
|
||||
alert(msg_select_one);
|
||||
return false;
|
||||
}
|
||||
else if (curPackItemId == '' || curPackItemQty == '')
|
||||
{
|
||||
alert(msg_set_quantity);
|
||||
return false;
|
||||
}
|
||||
|
||||
var lineDisplay = curPackItemQty+ 'x ' +curPackItemName;
|
||||
|
||||
var divContent = $('#divPackItems').html();
|
||||
divContent += lineDisplay;
|
||||
divContent += '<span onclick="delPackItem(' + curPackItemId + ');" style="cursor: pointer;"><img src="../img/admin/delete.gif" /></span><br />';
|
||||
|
||||
// QTYxID-QTYxID
|
||||
var line = curPackItemQty+ 'x' +curPackItemId;
|
||||
|
||||
|
||||
$('#inputPackItems').val($('#inputPackItems').val() + line + '-');
|
||||
$('#divPackItems').html(divContent);
|
||||
$('#namePackItems').val($('#namePackItems').val() + lineDisplay + '¤');
|
||||
|
||||
$('#curPackItemId').val('');
|
||||
$('#curPackItemName').val('');
|
||||
$('p.listOfPack').show();
|
||||
|
||||
$('#curPackItemName').setOptions({
|
||||
extraParams: {
|
||||
excludeIds : getSelectedIds(),
|
||||
q: curPackItemName
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function delPackItem(id)
|
||||
{
|
||||
var reg = new RegExp('-', 'g');
|
||||
var regx = new RegExp('x', 'g');
|
||||
|
||||
var div = getE('divPackItems');
|
||||
var input = getE('inputPackItems');
|
||||
var name = getE('namePackItems');
|
||||
var select = getE('curPackItemId');
|
||||
var select_quantity = getE('curPackItemQty');
|
||||
|
||||
var inputCut = input.value.split(reg);
|
||||
var nameCut = name.value.split(new RegExp('¤', 'g'));
|
||||
|
||||
input.value = '';
|
||||
name.value = '';
|
||||
div.innerHTML = '';
|
||||
|
||||
for (var i = 0; i < inputCut.length; ++i)
|
||||
if (inputCut[i])
|
||||
{
|
||||
var inputQty = inputCut[i].split(regx);
|
||||
if (inputQty[1] != id)
|
||||
{
|
||||
input.value += inputCut[i] + '-';
|
||||
name.value += nameCut[i] + '¤';
|
||||
div.innerHTML += nameCut[i] + ' <span onclick="delPackItem(' + inputQty[1] + ');" style="cursor: pointer;"><img src="../img/admin/delete.gif" /></span><br />';
|
||||
}
|
||||
}
|
||||
|
||||
$('#curPackItemName').setOptions({
|
||||
extraParams: {
|
||||
excludeIds : getSelectedIds()
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getSelectedIds()
|
||||
{
|
||||
// input lines QTY x ID-
|
||||
var ids = id_product + ',';
|
||||
ids += $('#inputPackItems').val().replace(/\\d+x/g, '').replace(/\-/g,',');
|
||||
ids = ids.replace(/\,$/,'');
|
||||
return ids;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<h4>{l s='Pack'}</h4>
|
||||
<div class="separation"></div>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="ppack">
|
||||
<input type="checkbox" name="ppack" id="ppack" value="1" {if $is_pack}checked="checked"{/if} onclick="$('#ppackdiv').slideToggle();" />
|
||||
<label class="t" for="ppack">{l s='Pack'}</label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div id="ppackdiv" {if !$is_pack}style="display: none;"{/if}>
|
||||
|
||||
<label for="curPackItemName" style="width:560px;text-align:left;">
|
||||
{l s='Begin typing the first letters of the product name, then select the product from the drop-down list:'}
|
||||
</label><br /><br />
|
||||
|
||||
<input type="text" size="25" id="curPackItemName" />
|
||||
<input type="text" name="curPackItemQty" id="curPackItemQty" value="1" size="1" />
|
||||
<input type="hidden" name="inputPackItems" id="inputPackItems" value="{$input_pack_items}" />
|
||||
<input type="hidden" name="namePackItems" id="namePackItems" value="{$input_namepack_items}" />
|
||||
<input type="hidden" size="2" id="curPackItemId" />
|
||||
|
||||
<span onclick="addPackItem();" class="button" style="cursor: pointer;">
|
||||
{l s='Add this product in the pack'}
|
||||
</span>
|
||||
|
||||
<p class="product_description listOfPack" style="display:{if count($product->packItems) > 0}block{else}none{/if};text-align: left;">
|
||||
<br />{l s='List of products for that pack:'}
|
||||
</p>
|
||||
|
||||
<div id="divPackItems">
|
||||
{foreach from=$product->packItems item=packItem}
|
||||
{$packItem->pack_quantity} x {$packItem->name}
|
||||
<span onclick="delPackItem({$packItem->id});" style="cursor: pointer;">
|
||||
<img src="../img/admin/delete.gif" />
|
||||
</span><br />
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<p class="hint" style="display:block">{l s='You cannot add downloadable products to a pack.'}</p>
|
||||
|
||||
</td>
|
||||
</div>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -1,118 +1,394 @@
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision$
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{* BEGIN CUSTOMER AUTO-COMPLETE / TO REFACTO *}
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
var product_prices = new Array();
|
||||
{foreach from=$combinations item='combination'}
|
||||
product_prices['{$combination.id_product_attribute}'] = '{$combination.price}';
|
||||
{/foreach}
|
||||
</script>
|
||||
<a href="#" onclick="$('#add_specific_price').slideToggle();return false;"><img src="../img/admin/add.gif" alt="" />{l s='Add a new specific price'}</a>
|
||||
<div id="add_specific_price" style="display: none;">
|
||||
<input type="hidden" name="sp_id_shop" value="0" />
|
||||
<label>{l s='For:'}</label>
|
||||
<div class="margin-form">
|
||||
<select name="sp_id_shop">
|
||||
<option value="0">{l s='All shops'}</option>
|
||||
{foreach from=$shops item=shop}
|
||||
<option value="{$shop['id_shop']}">{$shop['name']|htmlentitiesUTF8}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
>
|
||||
<select name="sp_id_currency" id="spm_currency_0" onchange="changeCurrencySpecificPrice(0);">
|
||||
<option value="0">{l s='All currencies'}</option>
|
||||
{foreach from=$currencies item=curr}
|
||||
<option value="{$curr['id_currency']}">{$curr['name']|htmlentitiesUTF8}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
>
|
||||
<select name="sp_id_country">
|
||||
<option value="0">{l s='All countries'}</option>
|
||||
{foreach from=$countries item=country}
|
||||
<option value="{$country['id_country']}">{$country['name']|htmlentitiesUTF8}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
>
|
||||
<select name="sp_id_group">
|
||||
<option value="0">{l s='All groups'}</option>
|
||||
{foreach from=$groups item=group}
|
||||
<option value="'.(int)($group['id_group']).'">'.{$group['name']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{if $combinations|@count != 0}
|
||||
<label>{l s='Combination:'}</label>
|
||||
<div class="margin-form">
|
||||
<select id="sp_id_product_attribute" name="sp_id_product_attribute">
|
||||
<option value="0">{l s='Apply to all combinations'}</option>
|
||||
{foreach from=$combinations item='combination'}
|
||||
<option value="{$combination.id_product_attribute}">{$combination.attributes}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/if}
|
||||
<label>{l s='Available from:'}</label>
|
||||
<div class="margin-form">
|
||||
<input class="datepicker" type="text" name="sp_from" value="" style="text-align: center" id="sp_from" /><span style="font-weight:bold; color:#000000; font-size:12px"> {l s='to'}</span>
|
||||
<input class="datepicker" type="text" name="sp_to" value="" style="text-align: center" id="sp_to" />
|
||||
</div>
|
||||
|
||||
<label>{l s='Starting at'}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="sp_from_quantity" value="1" size="3" /> <span style="font-weight:bold; color:#000000; font-size:12px">{l s='unit'}</span>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
product_prices['0'] = $('#sp_current_ht_price').html();
|
||||
$('#id_product_attribute').change(function() {
|
||||
$('#sp_current_ht_price').html(product_prices[$('#id_product_attribute option:selected').val()]);
|
||||
});
|
||||
$('.datepicker').datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
dateFormat: 'yy-mm-dd'
|
||||
});
|
||||
var Customer = {
|
||||
"hiddenField": jQuery('#id_customer'),
|
||||
"field": jQuery('#customer'),
|
||||
"container": jQuery('#customers'),
|
||||
"loader": jQuery('#customerLoader'),
|
||||
"init": function() {
|
||||
jQuery(Customer.field).typeWatch({
|
||||
"captureLength": 1,
|
||||
"highlight": true,
|
||||
"wait": 50,
|
||||
"callback": Customer.search
|
||||
}).focus(Customer.placeholderIn).blur(Customer.placeholderOut);
|
||||
},
|
||||
"placeholderIn": function() {
|
||||
if (this.value == '{/literal}{l s='All customers'}{literal}') {
|
||||
this.value = '';
|
||||
}
|
||||
},
|
||||
"placeholderOut": function() {
|
||||
if (this.value == '') {
|
||||
this.value = '{/literal}{l s='All customers'}{literal}';
|
||||
}
|
||||
},
|
||||
"search": function()
|
||||
{
|
||||
Customer.showLoader();
|
||||
jQuery.ajax({
|
||||
"type": "POST",
|
||||
"url": "{/literal}{$link->getAdminLink('AdminProducts')}{literal}",
|
||||
"async": true,
|
||||
"dataType": "json",
|
||||
"data": {
|
||||
"ajax": "1",
|
||||
"token": "{/literal}{$token}{literal}",
|
||||
"tab": "AdminProducts",
|
||||
"action": "searchCustomers",
|
||||
"customer_search": Customer.field.val()
|
||||
},
|
||||
"success": Customer.success
|
||||
});
|
||||
</script>
|
||||
},
|
||||
"success": function(result)
|
||||
{
|
||||
if(result.found) {
|
||||
var html = '<ul class="clearfix">';
|
||||
jQuery.each(result.customers, function() {
|
||||
html += '<li><a class="fancybox" href="{/literal}{$link->getAdminLink('AdminCustomers')}{literal}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1">'+this.firstname+' '+this.lastname+'</a>'+(this.birthday ? ' - '+this.birthday:'')+'<br/>';
|
||||
html += '<a href="mailto:'+this.email+'">'+this.email+'</a><br />';
|
||||
html += '<a onclick="Customer.select('+this.id_customer+', \''+this.firstname+' '+this.lastname+'\'); return false;" href="#" class="button">{/literal}{l s='Choose'}{literal}</a></li>';
|
||||
});
|
||||
html += '</ul>';
|
||||
}
|
||||
else
|
||||
html = '<div class="warn">{/literal}{l s='No customers found'}{literal}</div>';
|
||||
Customer.hideLoader();
|
||||
Customer.container.html(html);
|
||||
jQuery('.fancybox', Customer.container).fancybox();
|
||||
},
|
||||
"select": function(id_customer, fullname)
|
||||
{
|
||||
Customer.hiddenField.val(id_customer);
|
||||
Customer.field.val(fullname);
|
||||
Customer.container.empty();
|
||||
return false;
|
||||
},
|
||||
"showLoader": function() {
|
||||
Customer.loader.fadeIn();
|
||||
},
|
||||
"hideLoader": function() {
|
||||
Customer.loader.fadeOut();
|
||||
}
|
||||
};
|
||||
jQuery(document).ready(Customer.init);
|
||||
</script>
|
||||
<style type="text/css">
|
||||
#content #customers .warn {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
#customers li {
|
||||
background-color: #ABDFF7;
|
||||
border: 1px solid #ccc;
|
||||
float: left;
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
#customers li .button {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
</style>
|
||||
{/literal}
|
||||
{* END CUSTOMER AUTO-COMPLETE / TO REFACTO *}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<div class="block_specific_prices_modifications">
|
||||
<h4>{l s='Product price'}</h4>
|
||||
<div class="separation"></div>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Pre-tax wholesale price:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{$currency->prefix}<input size="11" maxlength="14" name="wholesale_price" type="text" value="{$product->wholesale_price}" onchange="this.value = this.value.replace(/,/g, '.');" />{$currency->suffix}
|
||||
<p class="preference_description">{l s='The wholesale price at which you bought this product'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Pre-tax retail price:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{$currency->prefix}<input size="11" maxlength="14" id="priceTE" name="price" type="text" value="{$product->price}" onchange="this.value = this.value.replace(/,/g, '.');" onkeyup="if (isArrowKey(event)) return; calcPriceTI();" />{$currency->suffix}<sup> *</sup>
|
||||
<p class="preference_description">{l s='The pre-tax retail price to sell this product'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Tax rule:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<script type="text/javascript">
|
||||
noTax = {if $tax_exclude_taxe_option}true{else}false{/if};
|
||||
taxesArray = new Array ();
|
||||
taxesArray[0] = 0;
|
||||
{foreach $tax_rules_groups as $tax_rules_group}
|
||||
{if isset($taxesRatesByGroup[$tax_rules_group['id_tax_rules_group']])}
|
||||
taxesArray[{$tax_rules_group.id_tax_rules_group}] = {$taxesRatesByGroup[$tax_rules_group['id_tax_rules_group']]};
|
||||
{else}
|
||||
taxesArray[{$tax_rules_group.id_tax_rules_group}] = 0;
|
||||
{/if}
|
||||
{/foreach}
|
||||
ecotaxTaxRate = {$ecotaxTaxRate / 100};
|
||||
</script>
|
||||
|
||||
<span {if $tax_exclude_taxe_option}style="display:none;"{/if} >
|
||||
<select onChange="javascript:calcPriceTI(); unitPriceWithTax('unit');" name="id_tax_rules_group" id="id_tax_rules_group" {if $tax_exclude_taxe_option}disabled="disabled"{/if} >
|
||||
<option value="0">{l s='No Tax'}</option>
|
||||
{foreach from=$tax_rules_groups item=tax_rules_group}
|
||||
<option value="{$tax_rules_group.id_tax_rules_group}" {if $product->id_tax_rules_group == $tax_rules_group.id_tax_rules_group}selected="selected"{/if} >
|
||||
{$tax_rules_group['name']|htmlentitiesUTF8}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
<a href="{$link->getAdminLink('AdminTaxRulesGroup')}&addtax_rules_group&id_product={$product->id}" class="confirm_leave">
|
||||
<img src="../img/admin/add.gif" alt="{l s='Create'}" title="{l s='Create'}" /> <b>{l s='Create'}</b>
|
||||
</a>
|
||||
</span>
|
||||
{if $tax_exclude_taxe_option}
|
||||
<span style="margin-left:10px; color:red;">{l s='Taxes are currently disabled'}</span> (<b><a href="{$link->getAdminLink('AdminTaxes')}">{l s='Tax options'}</a></b>)
|
||||
<input type="hidden" value="{$product->id_tax_rules_group}" name="id_tax_rules_group" />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{if $ps_use_ecotax}
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Eco-tax (tax incl.):'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{$currency->prefix}<input size="11" maxlength="14" id="ecotax" name="ecotax" type="text" value="{$product->ecotax}" onkeyup="if (isArrowKey(event))return; calcPriceTE(); this.value = this.value.replace(/,/g, '.'); if (parseInt(this.value) > getE('priceTE').value) this.value = getE('priceTE').value; if (isNaN(this.value)) this.value = 0;" />{$currency->suffix}
|
||||
<span style="margin-left:10px">({l s='already included in price'})</span>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr {if !$country_display_tax_label || $tax_exclude_taxe_option}style="display:none"{/if} >
|
||||
<td class="col-left"><label>{l s='Retail price with tax:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{$currency->prefix}<input size="11" maxlength="14" id="priceTI" type="text" value="" onchange="noComma('priceTI');" onkeyup="if (isArrowKey(event)) return; calcPriceTE();" />{$currency->suffix}
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="tr_unit_price">
|
||||
<td class="col-left"><label>{l s='Unit price:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{$currency->prefix} <input size="11" maxlength="14" id="unit_price" name="unit_price" type="text" value="{$unit_price}"
|
||||
onkeyup="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.'); unitPriceWithTax('unit');"/>{$currency->suffix}
|
||||
{l s='/'} <!--<input size="6" maxlength="10" id="unity" name="unity" type="text" value="{$product->unity|htmlentitiesUTF8}" onkeyup="if (isArrowKey(event)) return ;unitySecond();" onchange="unitySecond();"/> -->
|
||||
<select onchange="unitySecond();" name="unity" id="unity">
|
||||
{foreach $unities as $unity}
|
||||
<option value="{$unity}" {if $unity == $product->unity} selected="selected"{/if}>{$unity}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{if $ps_tax && $country_display_tax_label}
|
||||
<span style="margin-left:15px">{l s='or'}
|
||||
{$currency->prefix}<span id="unit_price_with_tax">0.00</span>{$currency->suffix}
|
||||
{l s='/'} <span id="unity_second">{$product->unity}</span> {l s='with tax'}
|
||||
</span>
|
||||
{/if}
|
||||
<p>{l s='Eg. $15 per Lb'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-left"><label> </label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input type="checkbox" name="on_sale" id="on_sale" style="padding-top: 5px;" {if $product->on_sale}checked="checked"{/if} value="1" /> <label for="on_sale" class="t">{l s='Display "on sale" icon on product page and text on product listing'}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-left"><label><b>{l s='Final retail price:'}</b></label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<span {if !$country_display_tax_label}style="display:none"{/if} >
|
||||
{$currency->prefix}<span id="finalPrice" style="font-weight: bold;"></span>{$currency->suffix}<span {if $ps_tax}style="display:none;"{/if}> ({l s='tax incl.'})</span>
|
||||
</span>
|
||||
<span {if $ps_tax}style="display:none;"{/if} >
|
||||
|
||||
{if $country_display_tax_label}
|
||||
/
|
||||
{/if}
|
||||
{$currency->prefix}<span id="finalPriceWithoutTax" style="font-weight: bold;"></span>{$currency->suffix} {if $country_display_tax_label}({l s='tax excl.'}){/if}</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="separation"></div>
|
||||
|
||||
{if isset($specificPriceModificationForm)}
|
||||
<h4>{l s='Specific prices'}</h4>
|
||||
<div class="hint" style="display:block;min-height:0;">
|
||||
{l s='You can set specific prices for clients belonging to different groups, different countries...'}
|
||||
</div>
|
||||
<br />
|
||||
<a class="button bt-icon" href="#" onclick="$('#add_specific_price').slideToggle();return false;"><img src="../img/admin/add.gif" alt="" /><span>{l s='Add a new specific price'}</span></a>
|
||||
<br/>
|
||||
<script type="text/javascript">
|
||||
var product_prices = new Array();
|
||||
{foreach from=$combinations item='combination'}
|
||||
product_prices['{$combination.id_product_attribute}'] = '{$combination.price}';
|
||||
{/foreach}
|
||||
</script>
|
||||
<div id="add_specific_price" style="display: none;">
|
||||
<label>{l s='For:'}</label>
|
||||
{if !$multi_shop}
|
||||
<div class="margin-form">
|
||||
<input type="hidden" name="sp_id_shop" value="0" />
|
||||
{else}
|
||||
<div class="margin-form">
|
||||
<select name="sp_id_shop">
|
||||
<option value="0">{l s='All shops'}</option>
|
||||
{foreach from=$shops item=shop}
|
||||
<option value="{$shop.id_shop}">{$shop.name|htmlentitiesUTF8}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
>
|
||||
{/if}
|
||||
<select name="sp_id_currency" id="spm_currency_0" onchange="changeCurrencySpecificPrice(0);">
|
||||
<option value="0">{l s='All currencies'}</option>
|
||||
{foreach from=$currencies item=curr}
|
||||
<option value="{$curr.id_currency}">{$curr.name|htmlentitiesUTF8}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
>
|
||||
<select name="sp_id_country">
|
||||
<option value="0">{l s='All countries'}</option>
|
||||
{foreach from=$countries item=country}
|
||||
<option value="{$country.id_country}">{$country.name|htmlentitiesUTF8}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
>
|
||||
<select name="sp_id_group">
|
||||
<option value="0">{l s='All groups'}</option>
|
||||
{foreach from=$groups item=group}
|
||||
<option value="{$group.id_group}">{$group.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<label>{l s='Customer:'}</label>
|
||||
<div class="margin-form">
|
||||
<input type="hidden" name="sp_id_customer" id="id_customer" value="0" />
|
||||
<input type="text" name="customer" value="{l s='All customers'}" id="customer" autocomplete="off" />
|
||||
<img src="../img/admin/field-loader.gif" id="customerLoader" alt="{l s='Loading...'}" style="display: none;" />
|
||||
<div id="customers"></div>
|
||||
</div>
|
||||
{if $combinations|@count != 0}
|
||||
<label>{l s='Combination:'}</label>
|
||||
<div class="margin-form">
|
||||
<select id="sp_id_product_attribute" name="sp_id_product_attribute">
|
||||
<option value="0">{l s='Apply to all combinations'}</option>
|
||||
{foreach from=$combinations item='combination'}
|
||||
<option value="{$combination.id_product_attribute}">{$combination.attributes}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/if}
|
||||
<label>{l s='Available from:'}</label>
|
||||
<div class="margin-form">
|
||||
<input class="datepicker" type="text" name="sp_from" value="" style="text-align: center" id="sp_from" /><span style="font-weight:bold; color:#000000; font-size:12px"> {l s='to'}</span>
|
||||
<input class="datepicker" type="text" name="sp_to" value="" style="text-align: center" id="sp_to" />
|
||||
</div>
|
||||
|
||||
<label>{l s='Starting at'}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="sp_from_quantity" value="1" size="3" /> <span style="font-weight:bold; color:#000000; font-size:12px">{l s='unit'}</span>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
product_prices['0'] = $('#sp_current_ht_price').html();
|
||||
|
||||
$('#id_product_attribute').change(function() {
|
||||
$('#sp_current_ht_price').html(product_prices[$('#id_product_attribute option:selected').val()]);
|
||||
});
|
||||
|
||||
$('.datepicker').datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
dateFormat: 'yy-mm-dd'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<label>{l s='Product price'}
|
||||
{if $country_display_tax_label}
|
||||
{l s='(tax excl.):'}
|
||||
{/if}
|
||||
</label>
|
||||
<div class="margin-form">
|
||||
<span id="spm_currency_sign_pre_0" style="font-weight:bold; color:#000000; font-size:12px">{$currency->prefix}</span>
|
||||
<input type="text" name="sp_price" value="0" size="11" />
|
||||
<span id="spm_currency_sign_post_0" style="font-weight:bold; color:#000000; font-size:12px">{$currency->suffix}</span>
|
||||
<span>({l s='Current:'} </span><span id="sp_current_ht_price">{displayWtPrice p=$product->price}</span> )</span>
|
||||
<div class="hint" style="display:block;">
|
||||
{l s='You can set this value at 0 in order to apply the default price'}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label>{l s='Apply a discount of:'}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="sp_reduction" value="0.00" size="11" />
|
||||
<select name="sp_reduction_type">
|
||||
<option selected="selected">---</option>
|
||||
<option value="amount">{l s='Amount'}</option>
|
||||
<option value="percentage">{l s='Percentage'}</option>
|
||||
</select>
|
||||
{l s='(if set to "amount", the tax is included)'}
|
||||
</div>
|
||||
|
||||
<div class="margin-form">
|
||||
<input type="submit" name="submitPriceAddition" value="{l s='Add'}" class="button" />
|
||||
</div>
|
||||
{l s='(tax excl.):'}
|
||||
{/if}
|
||||
</label>
|
||||
<div class="margin-form">
|
||||
<span id="spm_currency_sign_pre_0" style="font-weight:bold; color:#000000; font-size:12px">
|
||||
{$currency->prefix}
|
||||
</span>
|
||||
<input type="text" name="sp_price" value="0" size="11" />
|
||||
<span id="spm_currency_sign_post_0" style="font-weight:bold; color:#000000; font-size:12px">
|
||||
{$currency->suffix}
|
||||
</span>
|
||||
<span>
|
||||
(
|
||||
{l s='Current:'}
|
||||
<span id="sp_current_ht_price">{displayWtPrice p=$product->price}</span>
|
||||
)
|
||||
</span>
|
||||
<div class="hint" style="display:block;min-height:0;">
|
||||
{l s='You can set this value at 0 in order to apply the default price'}
|
||||
</div>
|
||||
<div class="separation"></div>
|
||||
<div class="block_specific_prices_modifications">
|
||||
<h4>{l s='Current specific prices'}</h4>
|
||||
</div>
|
||||
|
||||
<label>{l s='Apply a discount of:'}</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" name="sp_reduction" value="0.00" size="11" />
|
||||
<select name="sp_reduction_type">
|
||||
<option selected="selected">---</option>
|
||||
<option value="amount">{l s='Amount'}</option>
|
||||
<option value="percentage">{l s='Percentage'}</option>
|
||||
</select>
|
||||
{l s='(if set to "amount", the tax is included)'}
|
||||
</div>
|
||||
|
||||
<div class="margin-form">
|
||||
<input type="submit" name="submitPriceAddition" value="{l s='Add'}" class="button" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table style="text-align: center;width:100%" class="table" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="cell border" style="width: 12%;">{l s='Rule'}</th>
|
||||
<th class="cell border" style="width: 12%;">{l s='Combination'}</th>
|
||||
<th class="cell border" style="width: 12%;">{l s='Shop'}</th>
|
||||
{if $multi_shop}<th class="cell border" style="width: 12%;">{l s='Shop'}</th>{/if}
|
||||
<th class="cell border" style="width: 12%;">{l s='Currency'}</th>
|
||||
<th class="cell border" style="width: 11%;">{l s='Country'}</th>
|
||||
<th class="cell border" style="width: 13%;">{l s='Group'}</th>
|
||||
<th class="cell border" style="width: 13%;">{l s='Customer'}</th>
|
||||
<th class="cell border" style="width: 12%;">{l s='Price'} {if $country_display_tax_label}{l s='(tax excl)'}{/if}</th>
|
||||
<th class="cell border" style="width: 10%;">{l s='Reduction'}</th>
|
||||
<th class="cell border" style="width: 15%;">{l s='Period'}</th>
|
||||
@@ -123,4 +399,8 @@ var product_prices = new Array();
|
||||
</thead>
|
||||
<tbody>
|
||||
{$specificPriceModificationForm}
|
||||
|
||||
<script type="text/javascript">
|
||||
calcPriceTI();
|
||||
unitPriceWithTax('unit');
|
||||
</script>
|
||||
{/if}
|
||||
@@ -1,198 +1,342 @@
|
||||
|
||||
<div class="hint" style="display:block; position:'auto';">
|
||||
<p>{l s='This interface allows you to manage the available quantities for sale of the current product and its combinations on the current shop.'}</p>
|
||||
<p>{l s='You can manually specify the quantities for the product / each product combinations, or choose to automatically determine these quantities based on your stock.'}</p>
|
||||
<p>{l s='In this case, the quantities correspond to the quantitites of the real stock in the warehouses associated to the current shop.'}</p>
|
||||
</div>
|
||||
<br />
|
||||
<table cellpadding="5">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<b>{l s='Available quantities for sale'}</b>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="separation"></div>
|
||||
<div class="warn" id="available_quantity_ajax_msg" style="display: none;"></div>
|
||||
<div class="error" id="available_quantity_ajax_error_msg" style="display: none;"></div>
|
||||
<div class="conf" id="available_quantity_ajax_success_msg" style="display: none;"></div>
|
||||
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" style="vertical-align:top;">
|
||||
<input {if $product->depends_on_stock == 1 && $stock_management_active == 1}checked="checked" {/if} {if $stock_management_active == 0}disabled="disabled" {/if} type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_1" value="1"/>
|
||||
<label style="float:none;font-weight:normal" for="depends_on_stock_1">{l s='Available quantities for current product and its combinations are based on stock in the warehouses'} {if $stock_management_active == 0} - <b>{l s='Not possible if stock management is not enabled'}</b>{/if}</label>
|
||||
<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" style="vertical-align:top;">
|
||||
<input {if $product->depends_on_stock == 0 || $stock_management_active == 0}checked="checked" {/if} type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_0" value="0"/>
|
||||
<label style="float:none;font-weight:normal" for="depends_on_stock_0">{l s='I want to specify available quantities manually, and manage my stock independently'}</label>
|
||||
<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" style="text-align:center;vertical-align:top;">
|
||||
<table class="table" cellpadding="0" cellspacing="0" style="width:60%;margin-left:20%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:200px;">{l s='Quantity'}</th>
|
||||
<th>{l s='Designation'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$attributes item=attribute}
|
||||
<tr>
|
||||
<td class="available_quantity" id="qty_{$attribute['id_product_attribute']}">
|
||||
<span>{$available_quantity[$attribute['id_product_attribute']]}</span>
|
||||
<input type="text" value="{$available_quantity[$attribute['id_product_attribute']]}"/>
|
||||
</td>
|
||||
<td>{$product_designation[$attribute['id_product_attribute']]}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="when_out_of_stock">
|
||||
<td>
|
||||
<table style="margin-top: 15px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='When out of stock:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input {if $product->out_of_stock == 0}checked="checked" {/if} id="out_of_stock_1" type="radio" checked="checked" value="0" class="out_of_stock" name="out_of_stock">
|
||||
<label id="label_out_of_stock_1" class="t" for="out_of_stock_1">{l s='Deny orders'}</label>
|
||||
<br>
|
||||
<input {if $product->out_of_stock == 1} 'checked="checked" {/if} id="out_of_stock_2" type="radio" value="1" class="out_of_stock" name="out_of_stock">
|
||||
<label id="label_out_of_stock_2" class="t" for="out_of_stock_2">{l s='Allow orders'}</label>
|
||||
<br>
|
||||
<input {if $product->out_of_stock == 2} 'checked="checked" {/if} id="out_of_stock_3" type="radio" value="2" class="out_of_stock" name="out_of_stock">
|
||||
<label id="label_out_of_stock_3" class="t" for="out_of_stock_3">
|
||||
Default:
|
||||
<i>Deny orders</i>
|
||||
{assign var=confirm value="Are you sure you want to delete entered product information?"}
|
||||
<a onclick="return confirm(' {$confirm} ');"
|
||||
href="index.php?tab=AdminPPreferences&token={$token_preferences}">
|
||||
{l s='as set in Preferences'}
|
||||
</a>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 11069 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
var showAjaxError = function(msg)
|
||||
{
|
||||
$('#available_quantity_ajax_error_msg').html(msg);
|
||||
$('#available_quantity_ajax_error_msg').show();
|
||||
$('#available_quantity_ajax_msg').hide();
|
||||
$('#available_quantity_ajax_success_msg').hide();
|
||||
};
|
||||
|
||||
var showAjaxSuccess = function(msg)
|
||||
{
|
||||
$('#available_quantity_ajax_success_msg').html(msg);
|
||||
$('#available_quantity_ajax_error_msg').hide();
|
||||
$('#available_quantity_ajax_msg').hide();
|
||||
$('#available_quantity_ajax_success_msg').show();
|
||||
};
|
||||
$(document).ready(function() {
|
||||
$('input').keypress(function(e) {
|
||||
var code = null;
|
||||
code = (e.keyCode ? e.keyCode : e.which);
|
||||
return (code == 13) ? false : true;
|
||||
});
|
||||
});
|
||||
|
||||
var showAjaxMsg = function(msg)
|
||||
{
|
||||
$('#available_quantity_ajax_msg').html(msg);
|
||||
$('#available_quantity_ajax_error_msg').hide();
|
||||
$('#available_quantity_ajax_msg').show();
|
||||
$('#available_quantity_ajax_success_msg').hide();
|
||||
};
|
||||
</script>
|
||||
|
||||
var ajaxCall = function(data)
|
||||
{
|
||||
data.ajaxProductQuantity = 1;
|
||||
data.id_product = '{$product->id}';
|
||||
data.token = "{$token}";
|
||||
data.ajax = 1;
|
||||
data.controller = "AdminProducts";
|
||||
data.action = "productQuantity";
|
||||
showAjaxMsg('{l s='Saving data...'}');
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax-tab.php",
|
||||
data: data,
|
||||
dataType: 'json',
|
||||
async : true,
|
||||
success: function(msg)
|
||||
{
|
||||
if (msg.error)
|
||||
{if isset($product->id)}
|
||||
|
||||
<h4>{l s='Available quantities for sale'}</h4>
|
||||
<div class="separation"></div>
|
||||
<div class="hint" style="display:block; position:'auto';">
|
||||
<p>{l s='This interface allows you to manage the available quantities for sale of the current product and its combinations on the current shop.'}</p>
|
||||
<p>{l s='You can choose to use the advanced stock management system for this product or not.'}</p>
|
||||
<p>{l s='You can manually specify the quantities for the product / each product combinations, or choose to automatically determine these quantities based on your stock (if advanced stock management is activated).'}</p>
|
||||
<p>{l s='In this case, the quantities correspond to the quantitites of the real stock in the warehouses associated to the current shop or current group of shops.'}</p>
|
||||
</div>
|
||||
<br />
|
||||
<h4>{l s='Available quantities for sale'}</h4>
|
||||
<div class="separation"></div>
|
||||
|
||||
|
||||
{if $show_quantities == true && !$product->cache_is_pack}
|
||||
<div class="warn" id="available_quantity_ajax_msg" style="display: none;"></div>
|
||||
<div class="error" id="available_quantity_ajax_error_msg" style="display: none;"></div>
|
||||
<div class="conf" id="available_quantity_ajax_success_msg" style="display: none;"></div>
|
||||
|
||||
<table cellpadding="5" style="width:100%">
|
||||
<tbody>
|
||||
<tr {if $product->is_virtual}style="display:none;"{/if} class="stockForVirtualProduct">
|
||||
<td valign="top" style="vertical-align:top;">
|
||||
<input {if $product->advanced_stock_management == 1 && $stock_management_active == 1}value="1" checked="checked"{else}value="0"{/if} {if $stock_management_active == 0}disabled="disabled" {/if}
|
||||
type="checkbox" name="advanced_stock_management" class="advanced_stock_management" id="advanced_stock_management" />
|
||||
<label style="float:none;font-weight:normal" for="advanced_stock_management">{l s='I want to use the advanced stock management system for this product'} {if $stock_management_active == 0} - <b>{l s='Not possible if stock management is not enabled'}</b>{/if}</label>
|
||||
<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr {if $product->is_virtual}style="display:none;"{/if} class="stockForVirtualProduct">
|
||||
<td valign="top" style="vertical-align:top;">
|
||||
<input {if $product->depends_on_stock == 1 && $stock_management_active == 1}checked="checked" {/if} {if $stock_management_active == 0 || $product->advanced_stock_management == 0}disabled="disabled" {/if} type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_1" value="1"/>
|
||||
<label style="float:none;font-weight:normal" for="depends_on_stock_1">{l s='Available quantities for current product and its combinations are based on stock in the warehouses'} {if $stock_management_active == 0 || $product->advanced_stock_management == 0} - <b>{l s='Not possible if stock management is not enabled AND/OR if this product does not use the stock management'}</b>{/if}</label>
|
||||
<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr {if $product->is_virtual}style="display:none;"{/if} class="stockForVirtualProduct">
|
||||
<td valign="top" style="vertical-align:top;">
|
||||
<input {if $product->depends_on_stock == 0 || $stock_management_active == 0}checked="checked" {/if} type="radio" name="depends_on_stock" class="depends_on_stock" id="depends_on_stock_0" value="0"/>
|
||||
<label style="float:none;font-weight:normal" for="depends_on_stock_0">{l s='I want to specify available quantities manually'}</label>
|
||||
<br /><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" style="text-align:left;vertical-align:top;">
|
||||
<table class="table" cellpadding="0" cellspacing="0" style="width:50%;">
|
||||
<colgroup>
|
||||
<col width="50"></col>
|
||||
<col></col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{l s='Quantity'}</th>
|
||||
<th>{l s='Designation'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$attributes item=attribute}
|
||||
<tr>
|
||||
<td class="available_quantity" id="qty_{$attribute['id_product_attribute']}">
|
||||
<span>{$available_quantity[$attribute['id_product_attribute']]}</span>
|
||||
<input type="text" value="{$available_quantity[$attribute['id_product_attribute']]}"/>
|
||||
</td>
|
||||
<td>{$product_designation[$attribute['id_product_attribute']]}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="when_out_of_stock">
|
||||
<td>
|
||||
<table style="margin-top: 15px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='When out of stock:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input {if $product->out_of_stock == 0} checked="checked" {/if} id="out_of_stock_1" type="radio" checked="checked" value="0" class="out_of_stock" name="out_of_stock">
|
||||
<label id="label_out_of_stock_1" class="t" for="out_of_stock_1">{l s='Deny orders'}</label>
|
||||
<br>
|
||||
<input {if $product->out_of_stock == 1} checked="checked" {/if} id="out_of_stock_2" type="radio" value="1" class="out_of_stock" name="out_of_stock">
|
||||
<label id="label_out_of_stock_2" class="t" for="out_of_stock_2">{l s='Allow orders'}</label>
|
||||
<br>
|
||||
<input {if $product->out_of_stock == 2} checked="checked" {/if} id="out_of_stock_3" type="radio" value="2" class="out_of_stock" name="out_of_stock">
|
||||
<label id="label_out_of_stock_3" class="t" for="out_of_stock_3">
|
||||
Default:
|
||||
<i>Deny orders</i>
|
||||
<a class="confirm_leave" href="index.php?tab=AdminPPreferences&token={$token_preferences}">
|
||||
{l s='as set in Preferences'}
|
||||
</a>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{elseif $product->cache_is_pack}
|
||||
<div class="warn">
|
||||
<p>{l s='It is not possible to manage quantities when you are managing a pack.'}</p>
|
||||
</div>
|
||||
{else}
|
||||
<div class="warn">
|
||||
<p>{l s='It is not possible to manage quantities when : '}</p>
|
||||
<ul>
|
||||
<li>{l s='You are managing all shops.'}</li>
|
||||
<li>{l s='You are managing a group of shops where quantities are not shared between all shops of this group.'}</li>
|
||||
<li>{l s='You are managing a shop which is in a group where quantities are shared between all shops of this group.'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="separation"></div>
|
||||
<h4>{l s='Availability settings'}</h4>
|
||||
<table cellpadding="5">
|
||||
{if !$ps_stock_management}
|
||||
<tr>
|
||||
<td colspan="2">{l s='The stock management is disabled'}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if !$has_attribute}
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Minimum quantity:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input size="3" maxlength="6" name="minimal_quantity" id="minimal_quantity" type="text" value="{$product->minimal_quantity|default:1}" />
|
||||
<p class="preference_description">{l s='The minimum quantity to buy this product (set to 1 to disable this feature)'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Displayed text when in-stock:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{include file="products/input_text_lang.tpl"
|
||||
languages=$languages
|
||||
input_value=$product->available_now
|
||||
input_name='available_now'}
|
||||
<span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer"> </span></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Displayed text when allowed to be back-ordered:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
{include file="products/input_text_lang.tpl"
|
||||
languages=$languages
|
||||
input_value=$product->available_later
|
||||
input_name='available_later'}
|
||||
<span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer"> </span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{if $countAttributes}
|
||||
<tr>
|
||||
<td class="col-left"><label>{l s='Available date:'}</label></td>
|
||||
<td style="padding-bottom:5px;">
|
||||
<input id="available_date" name="available_date" value="{$product->available_date}" class="datepicker"
|
||||
style="text-align: center;" type="text" />
|
||||
<p>{l s='The available date when this product is out of stock'}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
var showAjaxError = function(msg)
|
||||
{
|
||||
$('#available_quantity_ajax_error_msg').html(msg);
|
||||
$('#available_quantity_ajax_error_msg').show();
|
||||
$('#available_quantity_ajax_msg').hide();
|
||||
$('#available_quantity_ajax_success_msg').hide();
|
||||
};
|
||||
|
||||
var showAjaxSuccess = function(msg)
|
||||
{
|
||||
$('#available_quantity_ajax_success_msg').html(msg);
|
||||
$('#available_quantity_ajax_error_msg').hide();
|
||||
$('#available_quantity_ajax_msg').hide();
|
||||
$('#available_quantity_ajax_success_msg').show();
|
||||
};
|
||||
|
||||
var showAjaxMsg = function(msg)
|
||||
{
|
||||
$('#available_quantity_ajax_msg').html(msg);
|
||||
$('#available_quantity_ajax_error_msg').hide();
|
||||
$('#available_quantity_ajax_msg').show();
|
||||
$('#available_quantity_ajax_success_msg').hide();
|
||||
};
|
||||
|
||||
var ajaxCall = function(data)
|
||||
{
|
||||
data.ajaxProductQuantity = 1;
|
||||
data.id_product = '{$product->id}';
|
||||
data.token = "{$token}";
|
||||
data.ajax = 1;
|
||||
data.controller = "AdminProducts";
|
||||
data.action = "productQuantity";
|
||||
showAjaxMsg('{l s='Saving data...'}');
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax-tab.php",
|
||||
data: data,
|
||||
dataType: 'json',
|
||||
async : true,
|
||||
success: function(msg)
|
||||
{
|
||||
if (msg.error)
|
||||
{
|
||||
showAjaxError('{l s='Error durring saving data'}');
|
||||
return;
|
||||
}
|
||||
showAjaxSuccess('{l s='Data saved'}');
|
||||
},
|
||||
error: function(msg)
|
||||
{
|
||||
showAjaxError('{l s='Error durring saving data'}');
|
||||
return;
|
||||
}
|
||||
showAjaxSuccess('{l s='Data saved'}');
|
||||
},
|
||||
error: function(msg)
|
||||
});
|
||||
};
|
||||
|
||||
var refreshQtyAvaibilityForm = function()
|
||||
{
|
||||
if ($('#depends_on_stock_0').attr('checked'))
|
||||
{
|
||||
showAjaxError('{l s='Error durring saving data'}');
|
||||
$('.available_quantity').find('input').show();
|
||||
$('.available_quantity').find('span').hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('.available_quantity').find('input').hide();
|
||||
$('.available_quantity').find('span').show();
|
||||
}
|
||||
};
|
||||
|
||||
$('.depends_on_stock').click(function(e)
|
||||
{
|
||||
refreshQtyAvaibilityForm();
|
||||
ajaxCall( { actionQty: 'depends_on_stock', value: $(this).val() } );
|
||||
if($(this).val() == 0)
|
||||
$('.available_quantity input').trigger('change');
|
||||
});
|
||||
|
||||
$('.advanced_stock_management').click(function(e)
|
||||
{
|
||||
var val = 0;
|
||||
if ($(this).attr('checked'))
|
||||
val = 1;
|
||||
|
||||
ajaxCall( { actionQty: 'advanced_stock_management', value: val } );
|
||||
if (val == 1)
|
||||
{
|
||||
$(this).val(1);
|
||||
$('#depends_on_stock_1').attr('disabled', false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).val(0);
|
||||
$('#depends_on_stock_1').attr('disabled', true);
|
||||
$('#depends_on_stock_0').attr('checked', true);
|
||||
ajaxCall( { actionQty: 'depends_on_stock', value: 0} );
|
||||
refreshQtyAvaibilityForm();
|
||||
}
|
||||
refreshQtyAvaibilityForm();
|
||||
});
|
||||
|
||||
// bind enter key event on search field
|
||||
$('.available_quantity').find('input').bind('keypress', function(e) {
|
||||
var code = (e.keyCode ? e.keyCode : e.which);
|
||||
if(code == 13) { //Enter keycode
|
||||
e.stopPropagation();//Stop event propagation
|
||||
return false;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var refreshQtyAvaibilityForm = function()
|
||||
{
|
||||
if ($('#depends_on_stock_0').attr('checked'))
|
||||
|
||||
$('.available_quantity').find('input').blur(function(e)
|
||||
{
|
||||
$('.available_quantity').find('input').show();
|
||||
$('.available_quantity').find('span').hide();
|
||||
}
|
||||
else
|
||||
ajaxCall( { actionQty: 'set_qty', id_product_attribute: $(this).parent().attr('id').split('_')[1], value: $(this).val() } );
|
||||
});
|
||||
|
||||
$('.available_quantity').find('input').click(function(e)
|
||||
{
|
||||
$('.available_quantity').find('input').hide();
|
||||
$('.available_quantity').find('span').show();
|
||||
}
|
||||
};
|
||||
|
||||
$('.depends_on_stock').click(function(e)
|
||||
{
|
||||
refreshQtyAvaibilityForm();
|
||||
ajaxCall( { actionQty: 'depends_on_stock', value: $(this).val() } );
|
||||
if($(this).val() == 0)
|
||||
$('.available_quantity input').trigger('change');
|
||||
});
|
||||
|
||||
$('.available_quantity').find('input').change(function(e)
|
||||
{
|
||||
ajaxCall( { actionQty: 'set_qty', id_product_attribute: $(this).parent().attr('id').split('_')[1], value: $(this).val() } );
|
||||
});
|
||||
|
||||
$('.available_quantity').find('input').click(function(e)
|
||||
{
|
||||
if(typeof(this.intervalId) != 'undefined')
|
||||
window.clearInterval(this.intervalId);
|
||||
this.intervalId = window.setInterval(function(it, initialValue)
|
||||
{
|
||||
if(initialValue != $(it).val())
|
||||
if(typeof(this.intervalId) != 'undefined')
|
||||
window.clearInterval(this.intervalId);
|
||||
this.intervalId = window.setInterval(function(it, initialValue)
|
||||
{
|
||||
window.clearInterval(it.intervalId);
|
||||
$(it).trigger('change');
|
||||
$(it).trigger('click');
|
||||
}
|
||||
}, 500, this, $(this).val())
|
||||
});
|
||||
|
||||
$('.out_of_stock').click(function(e)
|
||||
{
|
||||
if(initialValue != $(it).val())
|
||||
{
|
||||
window.clearInterval(it.intervalId);
|
||||
$(it).trigger('change');
|
||||
$(it).trigger('click');
|
||||
}
|
||||
}, 500, this, $(this).val())
|
||||
});
|
||||
|
||||
$('.out_of_stock').click(function(e)
|
||||
{
|
||||
refreshQtyAvaibilityForm();
|
||||
ajaxCall( { actionQty: 'out_of_stock', value: $(this).val() } );
|
||||
});
|
||||
|
||||
refreshQtyAvaibilityForm();
|
||||
ajaxCall( { actionQty: 'out_of_stock', value: $(this).val() } );
|
||||
});
|
||||
</script>
|
||||
|
||||
refreshQtyAvaibilityForm();
|
||||
</script>
|
||||
{/if}
|
||||