Compare commits
644 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
e94bc51c8e | |
|
|
edd4727b9a | |
|
|
7cea45560a | |
|
|
4251fd1df9 | |
|
|
b174fe4b75 | |
|
|
e7cebdd9ff | |
|
|
5089929d00 | |
|
|
e228dc98ec | |
|
|
7e023cfaa9 | |
|
|
06922b6425 | |
|
|
d6d3f232bb | |
|
|
407a2276bf | |
|
|
d1ce56bb03 | |
|
|
a27fa76d08 | |
|
|
ad1686e63d | |
|
|
0399809641 | |
|
|
516ef5fc94 | |
|
|
8745d31cad | |
|
|
99bc44aeea | |
|
|
368e5f4303 | |
|
|
b02f1a8e5c | |
|
|
78c0968b11 | |
|
|
0add575696 | |
|
|
f06115095d | |
|
|
165a3e3745 | |
|
|
03fe58ea78 | |
|
|
0c0019b4b0 | |
|
|
530f5e7e03 | |
|
|
11a2d889c4 | |
|
|
b70f35c873 | |
|
|
860e33090f | |
|
|
ea2b3db7b1 | |
|
|
60cca47522 | |
|
|
77b59d9a6e | |
|
|
51a639422a | |
|
|
3463bb7f4d | |
|
|
1701551fbc | |
|
|
cee7b5536b | |
|
|
d41a372ef3 | |
|
|
fe74176563 | |
|
|
97afa16b46 | |
|
|
9184050986 | |
|
|
b5761464eb | |
|
|
69c5d4a71f | |
|
|
e150bd2509 | |
|
|
9f6937352c | |
|
|
65173d3d29 | |
|
|
b7114e175b | |
|
|
6a8f59d663 | |
|
|
7fef6ce945 | |
|
|
974caad459 | |
|
|
f843543722 | |
|
|
0f54e73fba | |
|
|
957b7bb68b | |
|
|
f0ececa3b5 | |
|
|
77272549a0 | |
|
|
8f77d0726e | |
|
|
67078ab385 | |
|
|
38851e6783 | |
|
|
9ecb2b9278 | |
|
|
e9d9fdcbb9 | |
|
|
e2b59d27ee | |
|
|
35db22cd36 | |
|
|
1b10e695b7 | |
|
|
6e1f390a34 | |
|
|
13cead79e9 | |
|
|
2b69afa469 | |
|
|
2c7c9e302c | |
|
|
a9f10cf0ab | |
|
|
9966f30c9a | |
|
|
8e00655c23 | |
|
|
321d5b0337 | |
|
|
677a187618 | |
|
|
4b6bd259eb | |
|
|
9a6fcf8804 | |
|
|
35a1e712f7 | |
|
|
f9fe016c3f | |
|
|
c3e90a27e1 | |
|
|
0d00794ffb | |
|
|
be6abc17cb | |
|
|
ca87bcb6af | |
|
|
55b2f6c6ba | |
|
|
69bcf4c8f6 | |
|
|
b3f66535a4 | |
|
|
a2dc05f665 | |
|
|
4587f8b266 | |
|
|
e7e5b50b60 | |
|
|
ed4907472a | |
|
|
f7e8d2f957 | |
|
|
ef34c2b7f8 | |
|
|
610b050ac5 | |
|
|
3a9a065f50 | |
|
|
4d4cda372c | |
|
|
c17d2b40db | |
|
|
56cdbaa03b | |
|
|
2cfbfc80ea | |
|
|
dfb25f0d38 | |
|
|
9330316c49 | |
|
|
28f5fd53f5 | |
|
|
347f614c2d | |
|
|
22eb87f75b | |
|
|
8bef2bb784 | |
|
|
38dae9a6bf | |
|
|
2c18d9f77b | |
|
|
87e32f6657 | |
|
|
f8056cb421 | |
|
|
57a6f73e9b | |
|
|
8728b2f853 | |
|
|
7b178f030c | |
|
|
2533c16196 | |
|
|
5c140fd98f | |
|
|
75a499e70d | |
|
|
f7ce45621f | |
|
|
e066ac358f | |
|
|
0cac7545b5 | |
|
|
bbf1f5824b | |
|
|
b2eca5232d | |
|
|
cbca30d705 | |
|
|
72ee9fe032 | |
|
|
161eff594d | |
|
|
caaedc323e | |
|
|
6dfe7c0a95 | |
|
|
df8fc3f5ab | |
|
|
b066a6f12d | |
|
|
73ebb0ba34 | |
|
|
f2149c975a | |
|
|
03ff939dc2 | |
|
|
685722f1f4 | |
|
|
576518ab63 | |
|
|
5c018eb9de | |
|
|
0acc95ff43 | |
|
|
e35af6c74b | |
|
|
48965f101d | |
|
|
b59987ba97 | |
|
|
35403e3e9c | |
|
|
a45ceb6ffb | |
|
|
bf8e592a51 | |
|
|
1f8f89fa91 | |
|
|
52680f2423 | |
|
|
040a54a8b0 | |
|
|
cef0e6602d | |
|
|
2c317630f1 | |
|
|
681a28958a | |
|
|
ad8cf5fb3d | |
|
|
2de82a4b7b | |
|
|
65f548477b | |
|
|
5e3f467904 | |
|
|
aef849ece8 | |
|
|
283049f8e9 | |
|
|
4e8d1929b8 | |
|
|
bf0a449419 | |
|
|
b2a6880d24 | |
|
|
2333bbc35e | |
|
|
5be71d9fa8 | |
|
|
d159b4f85d | |
|
|
bf59b58cc9 | |
|
|
327fd624c8 | |
|
|
8893eebaff | |
|
|
39920f42f3 | |
|
|
03e7d6dfdf | |
|
|
34b81f18f9 | |
|
|
6a9580f7a1 | |
|
|
a0ac634d1f | |
|
|
a72945501d | |
|
|
c77dc2f991 | |
|
|
c65c182e14 | |
|
|
cbaaab2ccf | |
|
|
7fc2202933 | |
|
|
f34efb62b6 | |
|
|
e3fd73b92f | |
|
|
0f457f0ec0 | |
|
|
5e44817505 | |
|
|
8de850824a | |
|
|
0cceec93e8 | |
|
|
f73f9084cf | |
|
|
bffb978658 | |
|
|
e40e75c67d | |
|
|
3a7c7024aa | |
|
|
6fc3e810d9 | |
|
|
70279cea1b | |
|
|
d93d43dc7c | |
|
|
b7671dedee | |
|
|
df534cd10e | |
|
|
3683960f55 | |
|
|
a68d25ba61 | |
|
|
6a23404b29 | |
|
|
ab811f359b | |
|
|
f2ecb745d9 | |
|
|
8ba0bddf04 | |
|
|
7ded6bbdca | |
|
|
733db2fe65 | |
|
|
3c34a14273 | |
|
|
81541be80e | |
|
|
f92c9c28c6 | |
|
|
545982db81 | |
|
|
e59111d394 | |
|
|
e5e6a68ff5 | |
|
|
fe960c6efe | |
|
|
4e606bf24d | |
|
|
2f39e0efcd | |
|
|
1161053c81 | |
|
|
15dcc9a39e | |
|
|
f74b858a93 | |
|
|
b681c769b9 | |
|
|
abe48a650d | |
|
|
0e3ae4e99f | |
|
|
8f380e40ec | |
|
|
d11c4922ea | |
|
|
7cd39aa321 | |
|
|
af6bee2cdc | |
|
|
05a5132688 | |
|
|
c0fb04533d | |
|
|
285e8c977c | |
|
|
b92a41b85f | |
|
|
8d7cbea03b | |
|
|
c9f48f042b | |
|
|
473240777a | |
|
|
50be17c101 | |
|
|
edba4c3ec2 | |
|
|
3d4bc1ffd1 | |
|
|
b5f9b9e114 | |
|
|
02956a8bd3 | |
|
|
c19796a181 | |
|
|
a127e7ea62 | |
|
|
56e119e4f7 | |
|
|
27e6d12535 | |
|
|
b991a14d82 | |
|
|
0ca8ef950e | |
|
|
0da48fc6d6 | |
|
|
3ed92c6e56 | |
|
|
c9eb1bb20b | |
|
|
f0069cba93 | |
|
|
282fbfe815 | |
|
|
70e723f4d6 | |
|
|
db0f16f21b | |
|
|
9d16918052 | |
|
|
b9dc94e48b | |
|
|
77d73fd336 | |
|
|
7a4aa27eef | |
|
|
d73bfd03b5 | |
|
|
7e3b0821bb | |
|
|
980f958bae | |
|
|
5efeef8136 | |
|
|
01d8874193 | |
|
|
ad387198be | |
|
|
7a62bc4ad2 | |
|
|
6bfa90616b | |
|
|
4bb0117366 | |
|
|
433a44afa1 | |
|
|
fbb07d9501 | |
|
|
7ce68f3cd7 | |
|
|
198c7d7b83 | |
|
|
425373f34f | |
|
|
ab8ad465b3 | |
|
|
3a7711a37d | |
|
|
28fd511f95 | |
|
|
b89e15479d | |
|
|
8871eecea3 | |
|
|
8491c01d8b | |
|
|
359118de7d | |
|
|
2e4bbc2611 | |
|
|
3425657121 | |
|
|
7d670d725d | |
|
|
591bb6b1d2 | |
|
|
496d0ac462 | |
|
|
2c49a4fbc1 | |
|
|
6dd855e1e2 | |
|
|
f5d3481c9a | |
|
|
35ce5479fd | |
|
|
4024355838 | |
|
|
5803e9b024 | |
|
|
4732c45012 | |
|
|
6753d96ce2 | |
|
|
ae2d3b57ea | |
|
|
b034d7d321 | |
|
|
fcf62c0c9d | |
|
|
950421774c | |
|
|
18b3f03303 | |
|
|
f413f07aaa | |
|
|
ddb4f685f9 | |
|
|
ff27e7e494 | |
|
|
6332243d2d | |
|
|
80729ed936 | |
|
|
2f8abff8f4 | |
|
|
47e26b5878 | |
|
|
fb285f7a29 | |
|
|
81482c578f | |
|
|
ceef94b81a | |
|
|
15c33320ee | |
|
|
f141f06b36 | |
|
|
ee233fefe3 | |
|
|
8ca610bcc0 | |
|
|
170171f6cd | |
|
|
dbbb57b1ad | |
|
|
84c2f9a858 | |
|
|
53956098fb | |
|
|
257c71e185 | |
|
|
88f7be3963 | |
|
|
c18336bc5e | |
|
|
b210d8fcdd | |
|
|
535f9bed52 | |
|
|
aa49c4c541 | |
|
|
79c85df4a3 | |
|
|
661c70073f | |
|
|
65d53e9992 | |
|
|
224f924673 | |
|
|
56e53e6205 | |
|
|
2cd477eae2 | |
|
|
5b1150b8be | |
|
|
8a6797e3c9 | |
|
|
0c930877d1 | |
|
|
f8e33d101b | |
|
|
ba96a3c280 | |
|
|
39dbe43d1d | |
|
|
53afa29aa4 | |
|
|
ad76d5fbdf | |
|
|
13debac95f | |
|
|
76b79fd004 | |
|
|
0e252b28f4 | |
|
|
496ff252f8 | |
|
|
0b886bf52c | |
|
|
d7cc4e6f80 | |
|
|
45511c281d | |
|
|
d5f4c04c8b | |
|
|
a859aec500 | |
|
|
c78f233c72 | |
|
|
0c0e1135c0 | |
|
|
d941a795c9 | |
|
|
dfcfd4edfb | |
|
|
b22ba52f98 | |
|
|
f5b5e67b9c | |
|
|
c0a99d1f87 | |
|
|
1dfd4def77 | |
|
|
da268c2947 | |
|
|
29c9d9f272 | |
|
|
4d03ef9ec2 | |
|
|
1e72159751 | |
|
|
568a9fa6bc | |
|
|
6b48c5deec | |
|
|
6f026f99a7 | |
|
|
4ef2b9ac8a | |
|
|
afdbc72240 | |
|
|
a124d529d2 | |
|
|
b3008e5f04 | |
|
|
43943e1c46 | |
|
|
7182696aba | |
|
|
a172335c52 | |
|
|
26429cfda3 | |
|
|
470b1628e9 | |
|
|
e640261066 | |
|
|
7dd51f4c46 | |
|
|
eef4210785 | |
|
|
5bafec04a3 | |
|
|
4f48eb9354 | |
|
|
23f1fb1992 | |
|
|
ae330b71df | |
|
|
f22df77bfe | |
|
|
f9606862f2 | |
|
|
6f2f0684b5 | |
|
|
6820077da3 | |
|
|
fb4c6c6d2d | |
|
|
595e306524 | |
|
|
f717e6d657 | |
|
|
a38dd54c41 | |
|
|
f998b2e5cf | |
|
|
1ac439a428 | |
|
|
e842cbc9ff | |
|
|
f8ef994da0 | |
|
|
2c7208818f | |
|
|
fa8b63c444 | |
|
|
36b60b8844 | |
|
|
27b18d8888 | |
|
|
6383aec674 | |
|
|
b44c29bc6c | |
|
|
25dc4be82f | |
|
|
82bddff404 | |
|
|
5a94beeccf | |
|
|
020e4effa6 | |
|
|
6c2c6e60fc | |
|
|
2b951c981c | |
|
|
37750c793d | |
|
|
b5c4ad89fd | |
|
|
ccf0fe5819 | |
|
|
9ba0610308 | |
|
|
9f515339e5 | |
|
|
b73eeffa52 | |
|
|
4066af404f | |
|
|
478cda35b6 | |
|
|
13479343aa | |
|
|
46d343e79e | |
|
|
f5d8c55bdf | |
|
|
011107dd9a | |
|
|
1c8300d4d3 | |
|
|
f46811f59a | |
|
|
c307489d85 | |
|
|
9e57ec4cd5 | |
|
|
a9b36bd775 | |
|
|
2d5da3dc7f | |
|
|
c689ed536c | |
|
|
8b3f18582f | |
|
|
7cebc9a2bd | |
|
|
4305242079 | |
|
|
d5cc0370bc | |
|
|
4d069eb109 | |
|
|
0d77ceb594 | |
|
|
773259f89e | |
|
|
6c18304cd2 | |
|
|
618893a41f | |
|
|
470cca567a | |
|
|
5513dc178e | |
|
|
2169e07ab2 | |
|
|
e36c54b378 | |
|
|
ebd631c312 | |
|
|
d4cb8bb5bb | |
|
|
8da183514e | |
|
|
d72a740c15 | |
|
|
842d9e708b | |
|
|
ebdf9cfe41 | |
|
|
a28673c8e2 | |
|
|
50600de813 | |
|
|
ce1700b2b8 | |
|
|
9032adc528 | |
|
|
ce5f4809a2 | |
|
|
26a62c9d19 | |
|
|
4766d88585 | |
|
|
a8d7cb5499 | |
|
|
f136f75e11 | |
|
|
05862f81eb | |
|
|
3f8f44e2e7 | |
|
|
61e6d6945c | |
|
|
df4cab4b5c | |
|
|
55fd96523d | |
|
|
eeeb8a288f | |
|
|
508720ca98 | |
|
|
c81e2757e7 | |
|
|
e81b3fbd4a | |
|
|
cfe8810666 | |
|
|
9bded5ad64 | |
|
|
eb1f0b1cba | |
|
|
e3970246c3 | |
|
|
c75d718978 | |
|
|
f4b73670af | |
|
|
90471ca4e3 | |
|
|
89443517c1 | |
|
|
a41c032e40 | |
|
|
30ee6ddd2a | |
|
|
46d21adcea | |
|
|
2dc82dff7c | |
|
|
16f8a69131 | |
|
|
0b2f844e49 | |
|
|
7eaba5ee31 | |
|
|
d14e2433da | |
|
|
069592cdbc | |
|
|
d58fa954b9 | |
|
|
9a9e5dc767 | |
|
|
16bdc50f0e | |
|
|
c8f36b9099 | |
|
|
80cf9143ee | |
|
|
30320485d4 | |
|
|
33c72859ee | |
|
|
69511fe5e7 | |
|
|
1e552ba569 | |
|
|
3b3a241ba2 | |
|
|
9b95f72c5c | |
|
|
719d386410 | |
|
|
0f44e9d70c | |
|
|
204c2ee39d | |
|
|
c21fc6ec0f | |
|
|
4618716d09 | |
|
|
6d850fb503 | |
|
|
1bad56eafe | |
|
|
e18525a2a5 | |
|
|
36c9ec8a61 | |
|
|
f022a9540d | |
|
|
100f6f45f8 | |
|
|
e369258c30 | |
|
|
d0bad06c21 | |
|
|
65425ee88f | |
|
|
de65988459 | |
|
|
c8382b6660 | |
|
|
31015b0739 | |
|
|
6e13dd6019 | |
|
|
178789690f | |
|
|
f7ae8f8238 | |
|
|
11d17341a8 | |
|
|
e18d5e29c1 | |
|
|
00c8cbc5ae | |
|
|
e72976252a | |
|
|
a928902b36 | |
|
|
95e3e5d073 | |
|
|
864d3ca94e | |
|
|
0bc50c4ca7 | |
|
|
b5797f6ad7 | |
|
|
813d5d1136 | |
|
|
025e48aae0 | |
|
|
b46634f5ec | |
|
|
07af86a955 | |
|
|
1d0e1e0ec6 | |
|
|
ca081f94df | |
|
|
1bdddb5243 | |
|
|
0619a19ee2 | |
|
|
6923f32b76 | |
|
|
f38d7d1d02 | |
|
|
e8c13c6c0a | |
|
|
98be2152dd | |
|
|
a11c98614c | |
|
|
c5d3125dcd | |
|
|
b083446c71 | |
|
|
c8bf618eb1 | |
|
|
050beb3efb | |
|
|
81425f9f2d | |
|
|
83e65415de | |
|
|
8d674ac140 | |
|
|
bf26825663 | |
|
|
5711a086ea | |
|
|
0cce876a5b | |
|
|
101f802d9c | |
|
|
6b125c532f | |
|
|
c64155af7b | |
|
|
bf62007391 | |
|
|
cf79f39a7a | |
|
|
59dac810ac | |
|
|
3c486f7610 | |
|
|
4a6478c78b | |
|
|
62d98af857 | |
|
|
b526f9eac2 | |
|
|
5dc98cfe8a | |
|
|
0d5a74bfb1 | |
|
|
1abf3d96a1 | |
|
|
e8b9d5940b | |
|
|
d6a0874654 | |
|
|
2be640f8d4 | |
|
|
b140923d86 | |
|
|
0baaefa543 | |
|
|
e36d9eb924 | |
|
|
12a3d14233 | |
|
|
e010e5a653 | |
|
|
68f973cf15 | |
|
|
6c9b3748d0 | |
|
|
a31e242c48 | |
|
|
5239c601a8 | |
|
|
c2aa9ba307 | |
|
|
49c1467777 | |
|
|
270316e37a | |
|
|
9dc794a5fb | |
|
|
2ab4b0c5ed | |
|
|
7d9193c474 | |
|
|
fa9fab7ad0 | |
|
|
fe0bfd2d31 | |
|
|
073d37a3de | |
|
|
5a75dc41a3 | |
|
|
2381460166 | |
|
|
b6b3db46ec | |
|
|
892476c905 | |
|
|
f79b6abe09 | |
|
|
b2b7d8d7b6 | |
|
|
834070ca4a | |
|
|
0c7d393afe | |
|
|
a03fb61f0a | |
|
|
88b29d2563 | |
|
|
b27b5e5dc5 | |
|
|
1577130605 | |
|
|
8bd923a1d9 | |
|
|
6e98817611 | |
|
|
c2bce08eef | |
|
|
1e3c3c3f61 | |
|
|
12b8f59b76 | |
|
|
ca520a11c0 | |
|
|
6070c6aae1 | |
|
|
b584b895d6 | |
|
|
4b1a3e8f27 | |
|
|
a6119e09a2 | |
|
|
f9eac9c1c2 | |
|
|
b5e33557a6 | |
|
|
59b4215cd8 | |
|
|
c7a8756c9c | |
|
|
b5178788c2 | |
|
|
5b854d78a1 | |
|
|
7471e031da | |
|
|
3925b228bb | |
|
|
faf1ce622a | |
|
|
69f246f8a1 | |
|
|
e3df86ca21 | |
|
|
d7dd75dfe0 | |
|
|
121363f6ee | |
|
|
bd5b9cf3e4 | |
|
|
04c7de59d0 | |
|
|
71f3c07d41 | |
|
|
5c2c27e4aa | |
|
|
d2ddfac6e8 | |
|
|
84949ba099 | |
|
|
2bf0d0d64b | |
|
|
7824208d36 | |
|
|
bfb3b972da | |
|
|
f22e00b166 | |
|
|
99d13efbde | |
|
|
1e0e5f6f65 | |
|
|
f687a2c875 | |
|
|
ddcd759c2e | |
|
|
6effd9f73b | |
|
|
086a8622de | |
|
|
f8d7da1fde | |
|
|
32d79121a6 | |
|
|
66cdcaf820 | |
|
|
722f5c210f | |
|
|
10ce888689 | |
|
|
d0341133b3 | |
|
|
499eff6321 | |
|
|
5965e3ca43 | |
|
|
197eefeeae | |
|
|
0f1f0fadd4 | |
|
|
7bd424537e | |
|
|
00e1da3141 | |
|
|
46058678dd | |
|
|
67168fcbff | |
|
|
dd6070384a | |
|
|
8aa371571d | |
|
|
af0b0c12a0 | |
|
|
c1bcd77b03 | |
|
|
83cfd6be6c | |
|
|
1b2eff61b7 | |
|
|
c9c1025394 | |
|
|
5b7ba6c146 | |
|
|
81a6e93ddb | |
|
|
008f57ca16 | |
|
|
e999ac290b | |
|
|
6dcf94069e | |
|
|
78a0f86864 | |
|
|
93a8b8dff7 | |
|
|
379251371d | |
|
|
5adf223121 | |
|
|
a63147b480 | |
|
|
33ff5755e8 | |
|
|
df2c0357ae | |
|
|
ec19b3f7e2 | |
|
|
7ba904f3f1 | |
|
|
840365ff0e | |
|
|
f8838f37b4 | |
|
|
86b924b5bc | |
|
|
e289b428f5 | |
|
|
e3b428536f | |
|
|
38ecc4df18 | |
|
|
ee2ba67534 | |
|
|
fa0c169f7e |
|
|
@ -1,5 +1,6 @@
|
||||||
it-pgsql-datasources.properties
|
it-pgsql-datasources.properties
|
||||||
nb-configuration.xml
|
nb-configuration.xml
|
||||||
|
nbproject
|
||||||
node
|
node
|
||||||
node_modules
|
node_modules
|
||||||
runtime
|
runtime
|
||||||
|
|
@ -7,8 +8,10 @@ target
|
||||||
.cache
|
.cache
|
||||||
.classpath
|
.classpath
|
||||||
.factorypath
|
.factorypath
|
||||||
|
.parcel-cache
|
||||||
.project
|
.project
|
||||||
.settings
|
.settings
|
||||||
.tscache
|
.tscache
|
||||||
*.vscode
|
*.vscode
|
||||||
/ccm-core/nbproject/
|
/ccm-core/nbproject/
|
||||||
|
/ccm-cms/nbproject/
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
pipeline {
|
pipeline {
|
||||||
agent any
|
agent any
|
||||||
tools {
|
tools {
|
||||||
maven 'apache-maven-3.6.0'
|
maven 'apache-maven-3.8.4'
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Build and Test') {
|
stage('Build and Test') {
|
||||||
steps {
|
steps {
|
||||||
dir('') {
|
dir('') {
|
||||||
sh 'mvn clean package verify -Prun-its-with-wildfly-h2mem -Dwildfly.propertiesFile=/srv/libreccm-wildfly.properties'
|
//sh 'mvn clean package verify -Prun-its-with-wildfly-h2mem -Dwildfly.propertiesFile=/srv/libreccm-wildfly.properties'
|
||||||
|
sh 'mvn clean package'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -19,6 +20,10 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage("Deploy") {
|
stage("Deploy") {
|
||||||
|
environment {
|
||||||
|
DEPLOY_TOKEN = credentials('gitea_libreccm_ci_packages')
|
||||||
|
NPM_TOKEN = credentials('gitea_libreccm_ci_packages')
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
dir('') {
|
dir('') {
|
||||||
configFileProvider([configFile(fileId: 'libreccm-packages-deploy', variable: 'MAVEN_SETTINGS')]) {
|
configFileProvider([configFile(fileId: 'libreccm-packages-deploy', variable: 'MAVEN_SETTINGS')]) {
|
||||||
|
|
|
||||||
|
|
@ -221,7 +221,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<linkXref>true</linkXref>
|
<linkXref>true</linkXref>
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
<sourceEncoding>utf-8</sourceEncoding>
|
||||||
<targetJdk>1.8</targetJdk>
|
<targetJdk>11</targetJdk>
|
||||||
<rulesets>
|
<rulesets>
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
<ruleset>/rulesets/java/basic.xml</ruleset>
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
<ruleset>/rulesets/java/braces.xml</ruleset>
|
||||||
|
|
|
||||||
|
|
@ -1,210 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel</artifactId>
|
|
||||||
<relativePath>../ccm-bundle-devel</relativePath>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel-thorntail</artifactId>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
|
|
||||||
<name>LibreCCM Devel Bundle for Thorntail</name>
|
|
||||||
<url>http://www.libreccm.org</url>
|
|
||||||
<distributionManagement>
|
|
||||||
<site>
|
|
||||||
<id>libreccm-site</id>
|
|
||||||
<name>LibreCCM</name>
|
|
||||||
<url>http://www.libreccm.org/project-sites/</url>
|
|
||||||
</site>
|
|
||||||
</distributionManagement>
|
|
||||||
|
|
||||||
<organization>
|
|
||||||
<name>LibreCCM Foundation</name>
|
|
||||||
</organization>
|
|
||||||
|
|
||||||
<licenses>
|
|
||||||
<license>
|
|
||||||
<name>LGPLv2 or newer</name>
|
|
||||||
<url>http://www.gnu.org/licenses/lgpl-2.0.html</url>
|
|
||||||
</license>
|
|
||||||
</licenses>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<!-- <dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>bom</artifactId>
|
|
||||||
<version>2.4.0.Final</version>
|
|
||||||
<scope>import</scope>
|
|
||||||
<type>pom</type>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</dependencyManagement>-->
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>cdi</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>datasources</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>ejb</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>hibernate-search</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>hibernate-validator</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>jaxrs</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- <dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>jaxrs-cdi</artifactId>
|
|
||||||
</dependency>-->
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>jaxrs-jsonp</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>jpa</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>jsf</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>jsonp</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>logging</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>mail</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>undertow</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-wildfly</artifactId>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.postgresql</groupId>
|
|
||||||
<artifactId>postgresql</artifactId>
|
|
||||||
<version>42.2.5.jre7</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>font-awesome</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs-domready</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>ccm-bundle-devel-wildfly</finalName>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>io.thorntail</groupId>
|
|
||||||
<artifactId>thorntail-maven-plugin</artifactId>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>package</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<overlays>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-editor</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-theme-foundry</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-core</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>assets/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>templates/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
</overlays>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,215 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
|
||||||
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<!--<parent>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>libreccm-parent</artifactId>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>-->
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel</artifactId>
|
|
||||||
<relativePath>../ccm-bundle-devel</relativePath>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel-wildfly-swarm</artifactId>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
|
|
||||||
<name>LibreCCM Devel Bundle for Wildfly Swarm</name>
|
|
||||||
<url>http://www.libreccm.org</url>
|
|
||||||
<distributionManagement>
|
|
||||||
<site>
|
|
||||||
<id>libreccm-site</id>
|
|
||||||
<name>LibreCCM</name>
|
|
||||||
<url>http://www.libreccm.org/project-sites/</url>
|
|
||||||
</site>
|
|
||||||
</distributionManagement>
|
|
||||||
|
|
||||||
<organization>
|
|
||||||
<name>LibreCCM Foundation</name>
|
|
||||||
</organization>
|
|
||||||
|
|
||||||
<licenses>
|
|
||||||
<license>
|
|
||||||
<name>LGPLv2 or newer</name>
|
|
||||||
<url>http://www.gnu.org/licenses/lgpl-2.0.html</url>
|
|
||||||
</license>
|
|
||||||
</licenses>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>bom-all</artifactId>
|
|
||||||
<version>2017.11.0</version>
|
|
||||||
<scope>import</scope>
|
|
||||||
<type>pom</type>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</dependencyManagement>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>cdi</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>container</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>datasources</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>ejb</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>hibernate-search</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>hibernate-validator</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>jaxrs</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>jaxrs-cdi</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>jpa</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>jsf</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>logging</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>mail</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>undertow</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.postgresql</groupId>
|
|
||||||
<artifactId>postgresql</artifactId>
|
|
||||||
<version>42.1.4.jre7</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>font-awesome</artifactId>
|
|
||||||
<version>4.7.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs</artifactId>
|
|
||||||
<version>2.3.5</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs-domready</artifactId>
|
|
||||||
<version>2.0.1-2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>ccm-bundle-devel-wildfly</finalName>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.swarm</groupId>
|
|
||||||
<artifactId>wildfly-swarm-plugin</artifactId>
|
|
||||||
<!--<configuration>
|
|
||||||
<mainClass>org.libreccm.CcmBundleDevel</mainClass>
|
|
||||||
</configuration>-->
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>package</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<overlays>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-editor</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-theme-foundry</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-core</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>assets/</include>
|
|
||||||
<include>VAADIN/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>templates/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
</overlays>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
package org.libreccm;
|
|
||||||
|
|
||||||
import org.wildfly.swarm.Swarm;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class CcmBundleDevel {
|
|
||||||
|
|
||||||
public static void main(final String[] args) throws Exception {
|
|
||||||
|
|
||||||
final Swarm swarm = new Swarm();
|
|
||||||
|
|
||||||
swarm.start();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
package org.libreccm;
|
|
||||||
|
|
||||||
import org.wildfly.swarm.Swarm;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class CcmBundleDevel {
|
|
||||||
|
|
||||||
public static void main(final String[] args) throws Exception {
|
|
||||||
|
|
||||||
final Swarm swarm = new Swarm();
|
|
||||||
|
|
||||||
swarm.start();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Configuration status="WARN">
|
|
||||||
<Appenders>
|
|
||||||
<Console name="Console" target="SYSTEM_OUT">
|
|
||||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
|
||||||
</Console>
|
|
||||||
</Appenders>
|
|
||||||
<Loggers>
|
|
||||||
<Root level="warn">
|
|
||||||
<AppenderRef ref="Console"/>
|
|
||||||
</Root>
|
|
||||||
|
|
||||||
<!--<Logger name="org.hibernate"
|
|
||||||
level="info">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.hibernate.SQL"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.hibernate.type"
|
|
||||||
level="trace">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.hibernate.type.descriptor.sql"
|
|
||||||
level="trace">
|
|
||||||
</Logger>-->
|
|
||||||
|
|
||||||
<!--<Logger name="com.arsdigita.bebop.util.Traversal"
|
|
||||||
level="debug">
|
|
||||||
</Logger>-->
|
|
||||||
|
|
||||||
<Logger name="com.arsdigita.cms.ui.assets.AssetFolderBrowserController"
|
|
||||||
level="debug">
|
|
||||||
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.cms.ui.folder.FolderBrowserTableModelBuilder"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
|
|
||||||
<Logger name="com.arsdigita.ui.admin.AdminServlet"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.ui.admin.configuration.ConfigurationTable"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.ui.admin.usersgroupsroles.UsersTable"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.cms.ui.assets.AssetPane"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.ui.login.UserLoginForm"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.packaging.Config"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.templating.PatternStylesheetResolver"
|
|
||||||
level="info">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.templating.SimpleURIResolver"
|
|
||||||
level="warn">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.web.CCMDispatcherServlet"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.core.AbstractEntityRepository"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.modules.CcmIntegrator"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.pagemodel.PageModelManager"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.security.OneTimeAuthTokenCleaner"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.security.PermissionManager"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.security.Shiro"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.ui.admin.usersgroupsroles.RolesController"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.librecms.contentsection.AssetRepository"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.librecms.contentsection.ContentSectionSetup"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.librecms.contentsection.ContentSectionServlet"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.librecms.contentsection.rs.Images"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="com.arsdigita.web.DefaultApplicationFileResolver"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
</Loggers>
|
|
||||||
</Configuration>
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
swarm:
|
|
||||||
deployment:
|
|
||||||
ccm-bundle-devel-wildfly.war:
|
|
||||||
jaxrs:
|
|
||||||
application-path: /jaxrs
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
[main]
|
|
||||||
|
|
||||||
filterChainResolver = org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver
|
|
||||||
|
|
||||||
passwordMatcher = org.apache.shiro.authc.credential.PasswordMatcher
|
|
||||||
passwordService = org.apache.shiro.authc.credential.DefaultPasswordService
|
|
||||||
passwordMatcher.passwordService = $passwordService
|
|
||||||
|
|
||||||
ccmRealm = org.libreccm.security.CcmShiroRealm
|
|
||||||
ccmRealm.credentialsMatcher = $passwordMatcher
|
|
||||||
|
|
||||||
securityManager.realms = $ccmRealm
|
|
||||||
securityManager.rememberMeManager.cipherKey = p5h/Aphy0gfV+XThbEPqSG4iQNh2fTNH9ZEkSBAt/Ok=
|
|
||||||
|
|
||||||
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
|
|
||||||
securityManager.cacheManager = $cacheManager
|
|
||||||
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
# -*- text -*-
|
|
||||||
# This file locates stylesheets, if you are using the
|
|
||||||
# "PatternStylesheetResolver". Please read the Javadoc for that file for
|
|
||||||
# the full story.
|
|
||||||
|
|
||||||
# Currently the "resource" part is actually "short-circuited", see
|
|
||||||
# Templating#transformURL(url). As long as we store and synchronize all theme
|
|
||||||
# files in each server's local file system, we use the direct file apprach to
|
|
||||||
# avoid unnecessary http request and traffic between client (user) and server!
|
|
||||||
# Additionally all modules are installed into one webapp context, so the
|
|
||||||
# webapp tag is redundant, but sort of required by some part of the code.
|
|
||||||
|
|
||||||
|
|
||||||
# Theme with single entry point (e.g Mandalay) managed by themedirector
|
|
||||||
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/start.xsl
|
|
||||||
http://::host::/::webapp::/themes/::themedir::/::theme::/start.xsl
|
|
||||||
|
|
||||||
# Theme with single entry point (e.g Mandalay) unmanaged default
|
|
||||||
#http://::host::/resource/::webapp::/themes/mandalay/start.xsl
|
|
||||||
#http://::host::/::webapp::/themes/mandalay/start.xsl
|
|
||||||
|
|
||||||
# Theme with single entry point (e.g Mandalay) unmanaged default
|
|
||||||
#http://::host::/resource/::webapp::/themes/mandalay/start.xsl
|
|
||||||
http://::host::/::webapp::/themes/libreccm-default/start.xsl
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# The following is for multi-entry themes, not used in ScientificCMS
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
# Output type is for things such as text/javascript
|
|
||||||
# NOT used by ScientificCMS, uses Mandalay only!
|
|
||||||
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::-::locale::.xsl
|
|
||||||
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::.xsl
|
|
||||||
|
|
||||||
# Grabs custom item xsl for CMS
|
|
||||||
# NOT used by ScientificCMS, uses Mandalay only!
|
|
||||||
#http://::host::/themes/servlet/content-item/index.xsl?oid=::item_template_oid::&delegated=::item_delegated_url::
|
|
||||||
|
|
||||||
# Theme, with optional locale & prefix
|
|
||||||
# NOT used by ScientificCMS, uses Mandalay only!
|
|
||||||
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::-::locale::.xsl
|
|
||||||
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::.xsl
|
|
||||||
|
|
||||||
# Theme, with optional locale
|
|
||||||
# NOT used by ScientificCMS, uses Mandalay only!
|
|
||||||
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::locale::.xsl
|
|
||||||
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::.xsl
|
|
||||||
|
|
||||||
# APLAWS generic default, with locale and prefix
|
|
||||||
# XXX change ROOT -> ccm-ldn-aplaws
|
|
||||||
# http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::-::prefix::-::locale::.xsl
|
|
||||||
# http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::-::prefix::.xsl
|
|
||||||
|
|
||||||
# APLAWS generic default, with locale
|
|
||||||
# XXX change ROOT -> ccm-ldn-aplaws
|
|
||||||
# http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::-::locale::.xsl
|
|
||||||
# http://::host::/resource/ROOT/themes/static/aplaws-generic/::application::-::url::.xsl
|
|
||||||
|
|
||||||
# Global default, from application's own web app
|
|
||||||
# NOT used by ScientificCMS
|
|
||||||
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
|
|
||||||
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::.xsl
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
version = 7.0.0-SNAPSHOT
|
|
||||||
appname = LibreCCM
|
|
||||||
apphomepage = http://www.libreccm.org
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
|
|
||||||
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
|
|
||||||
bean-discovery-mode="all">
|
|
||||||
</beans>
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
author: Jens Pelzetter
|
|
||||||
-->
|
|
||||||
|
|
||||||
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
|
|
||||||
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
|
|
||||||
version="2.1">
|
|
||||||
|
|
||||||
<persistence-unit name="LibreCCM" transaction-type="JTA">
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Enforce JPA provider
|
|
||||||
Not really necessary here because we don't use any Hibernate
|
|
||||||
specific features, but makes it easier to manage to database
|
|
||||||
creation scripts.
|
|
||||||
-->
|
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
|
||||||
|
|
||||||
<jta-data-source>java:jboss/datasources/LibreCCM</jta-data-source>
|
|
||||||
|
|
||||||
<!--<jta-data-source>java:/comp/env/jdbc/libreccm/db</jta-data-source>-->
|
|
||||||
|
|
||||||
<jar-file>lib/ccm-core-7.0.0-SNAPSHOT.jar</jar-file>
|
|
||||||
<jar-file>lib/ccm-cms-7.0.0-SNAPSHOT.jar</jar-file>
|
|
||||||
<jar-file>lib/ccm-shortcuts-7.0.0-SNAPSHOT.jar</jar-file>
|
|
||||||
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<!-- Properties for Hibernate -->
|
|
||||||
<property name="hibernate.hbm2ddl.auto" value="validate" />
|
|
||||||
<property name="hibernate.connection.autocommit" value="false" />
|
|
||||||
<property name="hibernate.id.new_generator_mappings" value="true" />
|
|
||||||
<property name="wildfly.jpa.hibernate.search.module"
|
|
||||||
value="org.hibernate.search.orm:main" />
|
|
||||||
|
|
||||||
<!--<property name="hibernate.show_sql" value="true" />
|
|
||||||
<property name="format_sql" value="true" />
|
|
||||||
<property name="use_sql_comments" value="true" />-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Properties for Hibernate Envers
|
|
||||||
We are using the ValidityAuditStrategy here because it is faster
|
|
||||||
when querying data than the DefaultStrategy
|
|
||||||
-->
|
|
||||||
<property name="org.hibernate.envers.audit_strategy"
|
|
||||||
value="org.hibernate.envers.strategy.ValidityAuditStrategy"/>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
</persistence-unit>
|
|
||||||
|
|
||||||
</persistence>
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
waf.config.packages=ccm-core
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
|
|
||||||
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
|
||||||
version="3.0">
|
|
||||||
|
|
||||||
<display-name>LibreCCM Devel Bundle for Wildfly</display-name>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>ccm.develmode</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</context-param>
|
|
||||||
<context-param>
|
|
||||||
<param-name>ccm.distribution</param-name>
|
|
||||||
<param-value>libreccm</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<!-- No JSESSIONID!!! -->
|
|
||||||
<session-config>
|
|
||||||
<tracking-mode>COOKIE</tracking-mode>
|
|
||||||
<!--<tracking-mode>URL</tracking-mode>-->
|
|
||||||
</session-config>
|
|
||||||
|
|
||||||
<filter>
|
|
||||||
<filter-name>ShiroFilter</filter-name>
|
|
||||||
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
|
|
||||||
</filter>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>ShiroFilter</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<listener>
|
|
||||||
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
|
|
||||||
</listener>
|
|
||||||
|
|
||||||
<!-- JAX-RS -->
|
|
||||||
<!--<servlet>
|
|
||||||
<servlet-name>javax.ws.rs.core.Application</servlet-name>
|
|
||||||
|
|
||||||
</servlet>
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>javax.ws.rs.core.Application</servlet-name>
|
|
||||||
<url-pattern>/content-sections/*</url-pattern>
|
|
||||||
</servlet-mapping>-->
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>Faces Servlet</servlet-name>
|
|
||||||
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
|
|
||||||
<load-on-startup>1</load-on-startup>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>Faces Servlet</servlet-name>
|
|
||||||
<url-pattern>*.xhtml</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>javax.faces.PROJECT_STAGE</param-name>
|
|
||||||
<param-value>Development</param-value>
|
|
||||||
</context-param>
|
|
||||||
<context-param>
|
|
||||||
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>vaadin-servlet</servlet-name>
|
|
||||||
<servlet-class>com.vaadin.cdi.server.VaadinCDIServlet</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>vaadin-servlet</servlet-name>
|
|
||||||
<url-pattern>/vaadin/*</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>vaadin-servlet</servlet-name>
|
|
||||||
<url-pattern>/VAADIN/*</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
</web-app>
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
requirejs(["./ccm-editor",
|
|
||||||
"./ccm-cms-editor",
|
|
||||||
"../webjars/requirejs-domready/2.0.1/domReady!"],
|
|
||||||
function(editor, cmseditor, doc) {
|
|
||||||
|
|
||||||
editor.addEditor(".editor-textarea", {
|
|
||||||
"commandGroups": [
|
|
||||||
{
|
|
||||||
"name": "blocks",
|
|
||||||
"title": "Format blocks",
|
|
||||||
"commands": [
|
|
||||||
editor.FormatBlockCommand
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "format-text",
|
|
||||||
"title": "Format text",
|
|
||||||
"commands": [
|
|
||||||
editor.MakeBoldCommand,
|
|
||||||
editor.MakeItalicCommand,
|
|
||||||
editor.MakeUnderlineCommand,
|
|
||||||
editor.StrikeThroughCommand,
|
|
||||||
editor.SubscriptCommand,
|
|
||||||
editor.SuperscriptCommand,
|
|
||||||
editor.RemoveFormatCommand,
|
|
||||||
editor.InsertExternalLinkCommand,
|
|
||||||
cmseditor.InsertInternalLinkCommand,
|
|
||||||
cmseditor.InsertMediaAssetCommand
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "insert-list",
|
|
||||||
"title": "Insert list",
|
|
||||||
"commands": [
|
|
||||||
editor.InsertUnorderedListCommand,
|
|
||||||
editor.InsertOrderedListCommand
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "html",
|
|
||||||
"title": "HTML",
|
|
||||||
"commands": [editor.ToggleHtmlCommand]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"ccm-editor-css.path": "/libreccm/ccm-editor/ccm-editor.css",
|
|
||||||
"font-awesome.path": "/libreccm/webjars/font-awesome/4.7.0/css/font-awesome.min.css",
|
|
||||||
"formatBlock.blocks": [
|
|
||||||
{
|
|
||||||
"element": "h3",
|
|
||||||
"title": "Heading 3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": "h4",
|
|
||||||
"title": "Heading 4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": "h5",
|
|
||||||
"title": "Heading 5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": "h6",
|
|
||||||
"title": "Heading 6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"element": "p",
|
|
||||||
"title": "Paragraph"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
datasource.properties
|
datasource.properties
|
||||||
|
runtime.properties
|
||||||
wildfly.properties
|
wildfly.properties
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
libreccm.datasource.connectionUrl=jdbc:postgresql://localhost:5432/ccm-devel
|
||||||
|
libreccm.datasource.username=ccm
|
||||||
|
libreccm.datasource.password=ccm47web
|
||||||
|
|
@ -5,11 +5,8 @@
|
||||||
"build": "webpack"
|
"build": "webpack"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@librecms/ccm-cms-pagemodelseditor": "7.0.0",
|
|
||||||
"tinymce": "^4.8.2"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/tinymce": "^4.5.16",
|
|
||||||
"@types/webpack-env": "^1.13.6",
|
"@types/webpack-env": "^1.13.6",
|
||||||
"file-loader": "^1.1.11",
|
"file-loader": "^1.1.11",
|
||||||
"ts-loader": "^4.4.2",
|
"ts-loader": "^4.4.2",
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
<artifactId>ccm-cms-js</artifactId>
|
<artifactId>ccm-cms-js</artifactId>
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
</dependency> -->
|
</dependency> -->
|
||||||
<dependency>
|
<!-- <dependency>
|
||||||
<groupId>org.librecms</groupId>
|
<groupId>org.librecms</groupId>
|
||||||
<artifactId>ccm-cms-pagemodelseditor</artifactId>
|
<artifactId>ccm-cms-pagemodelseditor</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>${project.parent.version}</version>
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<groupId>org.librecms</groupId>
|
<groupId>org.librecms</groupId>
|
||||||
<artifactId>ccm-cms-tinymce</artifactId>
|
<artifactId>ccm-cms-tinymce</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>-->
|
||||||
|
|
||||||
<!-- <dependency>
|
<!-- <dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
|
|
@ -80,9 +80,9 @@
|
||||||
<resource>
|
<resource>
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/main/resources</directory>
|
||||||
</resource>
|
</resource>
|
||||||
<resource>
|
<!--<resource>
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
</resource>
|
</resource>-->
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
@ -90,15 +90,15 @@
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<!-- <plugin>
|
||||||
<groupId>com.github.eirslett</groupId>
|
<groupId>com.github.eirslett</groupId>
|
||||||
<artifactId>frontend-maven-plugin</artifactId>
|
<artifactId>frontend-maven-plugin</artifactId>
|
||||||
|
|
||||||
|
|
@ -113,10 +113,10 @@
|
||||||
<goal>install-node-and-npm</goal>
|
<goal>install-node-and-npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<nodeVersion>v8.11.4</nodeVersion>
|
<nodeVersion>v16.14.2</nodeVersion>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<!-- <execution>
|
<execution>
|
||||||
<id>npm link @libreccm/ccm-pagemodelseditor</id>
|
<id>npm link @libreccm/ccm-pagemodelseditor</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
|
|
@ -124,7 +124,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<arguments>link @libreccm/ccm-pagemodelseditor</arguments>
|
<arguments>link @libreccm/ccm-pagemodelseditor</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution> -->
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>npm link @librecms/ccm-cms-pagemodelseditor</id>
|
<id>npm link @librecms/ccm-cms-pagemodelseditor</id>
|
||||||
<goals>
|
<goals>
|
||||||
|
|
@ -134,7 +134,7 @@
|
||||||
<arguments>link @librecms/ccm-cms-pagemodelseditor</arguments>
|
<arguments>link @librecms/ccm-cms-pagemodelseditor</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<!-- <execution>
|
<execution>
|
||||||
<id>npm link @librecms/ccm-cms-tinymce</id>
|
<id>npm link @librecms/ccm-cms-tinymce</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
|
|
@ -142,8 +142,8 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<arguments>link @librecms/ccm-cms-tinymce</arguments>
|
<arguments>link @librecms/ccm-cms-tinymce</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>-->
|
</execution>
|
||||||
<!--<execution>
|
<execution>
|
||||||
<id>npm link @librecms/ccm-cms-js</id>
|
<id>npm link @librecms/ccm-cms-js</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
|
|
@ -151,7 +151,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<arguments>link @librecms/ccm-cms-js</arguments>
|
<arguments>link @librecms/ccm-cms-js</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>-->
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>npm install</id>
|
<id>npm install</id>
|
||||||
<goals>
|
<goals>
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>-->
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
@ -179,9 +179,9 @@
|
||||||
<resource>
|
<resource>
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/main/resources</directory>
|
||||||
</resource>
|
</resource>
|
||||||
<resource>
|
<!--<resource>
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
</resource>
|
</resource>-->
|
||||||
</webResources>
|
</webResources>
|
||||||
|
|
||||||
<overlays>
|
<overlays>
|
||||||
|
|
@ -190,11 +190,11 @@
|
||||||
<artifactId>ccm-editor</artifactId>
|
<artifactId>ccm-editor</artifactId>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
</overlay>
|
</overlay>
|
||||||
<overlay>
|
<!-- <overlay>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-pagemodelseditor</artifactId>
|
<artifactId>ccm-pagemodelseditor</artifactId>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
</overlay>
|
</overlay>-->
|
||||||
<overlay>
|
<overlay>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-theme-foundry</artifactId>
|
<artifactId>ccm-theme-foundry</artifactId>
|
||||||
|
|
@ -213,17 +213,25 @@
|
||||||
<artifactId>ccm-core</artifactId>
|
<artifactId>ccm-core</artifactId>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<includes>
|
<includes>
|
||||||
<include>WEB-INF/</include>
|
<include>themes/</include>
|
||||||
</includes>
|
</includes>
|
||||||
</overlay>
|
</overlay>
|
||||||
<overlay>
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-core</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>WEB-INF/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
<!-- <overlay>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-shortcuts</artifactId>
|
<artifactId>ccm-shortcuts</artifactId>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<includes>
|
<includes>
|
||||||
<include>WEB-INF/</include>
|
<include>WEB-INF/</include>
|
||||||
</includes>
|
</includes>
|
||||||
</overlay>
|
</overlay>-->
|
||||||
<overlay>
|
<overlay>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-core</artifactId>
|
<artifactId>ccm-core</artifactId>
|
||||||
|
|
@ -245,17 +253,41 @@
|
||||||
<artifactId>ccm-cms</artifactId>
|
<artifactId>ccm-cms</artifactId>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<includes>
|
<includes>
|
||||||
<include>templates/</include>
|
<include>assets/</include>
|
||||||
</includes>
|
</includes>
|
||||||
</overlay>
|
</overlay>
|
||||||
<overlay>
|
<overlay>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>icons/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>templates/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
<!-- <overlay>
|
||||||
<groupId>org.librecms</groupId>
|
<groupId>org.librecms</groupId>
|
||||||
<artifactId>ccm-cms-tinymce</artifactId>
|
<artifactId>ccm-cms-tinymce</artifactId>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<includes>
|
<includes>
|
||||||
<include>scripts/</include>
|
<include>scripts/</include>
|
||||||
</includes>
|
</includes>
|
||||||
</overlay>
|
</overlay>-->
|
||||||
|
<!-- <overlay>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms-default-theme</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>themes/librecms/scripts/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay> -->
|
||||||
</overlays>
|
</overlays>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
@ -276,6 +308,27 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>properties-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>read-runtime-properties</id>
|
||||||
|
<phase>initialize</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>read-project-properties</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<files>
|
||||||
|
<file>${project.basedir}/runtime.example.properties</file>
|
||||||
|
<file>${project.basedir}/runtime.properties</file>
|
||||||
|
</files>
|
||||||
|
<quiet>true</quiet>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
<artifactId>wildfly-maven-plugin</artifactId>
|
||||||
|
|
@ -288,6 +341,58 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
|
<artifactId>wildfly-jar-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<jvmArguments>
|
||||||
|
<arg>-agentlib:jdwp=transport=dt_socket,server=y,suspend=${libreccm.debug.suspend},address=${libreccm.debug.port}</arg>
|
||||||
|
</jvmArguments>
|
||||||
|
<arguments>
|
||||||
|
-Dorg.wildfly.datasources.postgresql.database=${libreccm.database.name}
|
||||||
|
-Dorg.wildfly.datasources.postgresql.host=${libreccm.database.host}
|
||||||
|
-Dorg.wildfly.datasources.postgresql.jndi-name=java:/comp/env/jdbc/libreccm/db
|
||||||
|
-Dorg.wildfly.datasources.postgresql.password=${libreccm.database.password}
|
||||||
|
-Dorg.wildfly.datasources.postgresql.port=${libreccm.database.port}
|
||||||
|
-Dorg.wildfly.datasources.postgresql.user-name=${libreccm.database.user}
|
||||||
|
</arguments>
|
||||||
|
<feature-packs>
|
||||||
|
<feature-pack>
|
||||||
|
<location>wildfly@maven(org.jboss.universe:community-universe)#24.0.1.Final</location>
|
||||||
|
</feature-pack>
|
||||||
|
<feature-pack>
|
||||||
|
<groupId>org.wildfly</groupId>
|
||||||
|
<artifactId>wildfly-datasources-galleon-pack</artifactId>
|
||||||
|
<version>2.0.2.Final</version>
|
||||||
|
</feature-pack>
|
||||||
|
</feature-packs>
|
||||||
|
<layers>
|
||||||
|
<layer>cdi</layer>
|
||||||
|
<layer>datasources</layer>
|
||||||
|
<layer>ejb</layer>
|
||||||
|
<layer>jaxrs</layer>
|
||||||
|
<layer>jpa</layer>
|
||||||
|
<layer>jsf</layer>
|
||||||
|
<layer>jsonp</layer>
|
||||||
|
<layer>logging</layer>
|
||||||
|
<layer>mail</layer>
|
||||||
|
<layer>management</layer>
|
||||||
|
<layer>postgresql-datasource</layer>
|
||||||
|
</layers>
|
||||||
|
<!-- <excluded-layers>
|
||||||
|
<layer>deployment-scanner</layer>
|
||||||
|
</excluded-layers>-->
|
||||||
|
<skip>false</skip>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>package</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
libreccm.debug.suspend=n
|
||||||
|
|
||||||
|
libreccm.database.host=localhost
|
||||||
|
libreccm.database.port=5432
|
||||||
|
libreccm.database.name=ccm-devel
|
||||||
|
libreccm.database.user=ccm
|
||||||
|
libreccm.database.password=ccm47web
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
libreccm.http.port=8080
|
||||||
|
libreccm.https.port=8180
|
||||||
|
libreccm.debug.port=8787
|
||||||
|
libreccm.debug.suspend=n
|
||||||
|
|
||||||
|
libreccm.database.host=localhost
|
||||||
|
libreccm.database.port=5432
|
||||||
|
libreccm.database.name=libreccm-devel
|
||||||
|
libreccm.database.user=libreccm
|
||||||
|
libreccm.database.password=libreccm
|
||||||
|
|
@ -80,9 +80,6 @@
|
||||||
<Logger name="org.libreccm.security.Shiro"
|
<Logger name="org.libreccm.security.Shiro"
|
||||||
level="debug">
|
level="debug">
|
||||||
</Logger>
|
</Logger>
|
||||||
<Logger name="org.libreccm.theming.xslt.CcmUriResolver"
|
|
||||||
level="debug">
|
|
||||||
</Logger>
|
|
||||||
<Logger name="org.libreccm.ui.admin.usersgroupsroles.RolesController"
|
<Logger name="org.libreccm.ui.admin.usersgroupsroles.RolesController"
|
||||||
level="debug">
|
level="debug">
|
||||||
</Logger>
|
</Logger>
|
||||||
|
|
@ -107,5 +104,11 @@
|
||||||
<Logger name="org.libreccm.ui.admin.applications.ApplicationsPage"
|
<Logger name="org.libreccm.ui.admin.applications.ApplicationsPage"
|
||||||
level="debug">
|
level="debug">
|
||||||
</Logger>
|
</Logger>
|
||||||
|
<Logger name="org.librecms.ui.ContentSectionController"
|
||||||
|
level="debug">
|
||||||
|
</Logger>
|
||||||
|
<Logger name="org.libreccm.categorization.CategoryManager"
|
||||||
|
level="debug">
|
||||||
|
</Logger>
|
||||||
</Loggers>
|
</Loggers>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 57 KiB |
|
|
@ -0,0 +1,2 @@
|
||||||
|
example.setting=Properties from the Freemarker theme.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
padding: 1em 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
header img {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
|
||||||
|
width: 20vw;
|
||||||
|
max-width: 1020px;
|
||||||
|
max-height: 566px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
max-width: 55em;
|
||||||
|
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
|
||||||
|
padding: 2em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
main h1 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
main form.login {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
main form.login .form-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
main form.login button[type=submit] {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
margin-top: 0.75em;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
|
||||||
|
padding: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background-color: #71ac52;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
padding: 3em 1em;
|
||||||
|
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer p {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>LibreCCM Devel Theme</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>LibreCCM Devel</h1>
|
||||||
|
<h2>Site Info</h2>
|
||||||
|
<dl>
|
||||||
|
<dt>host</dt>
|
||||||
|
<dd>${CmsPagesSiteInfoModel.host}</dd>
|
||||||
|
<dt>domain</dt>
|
||||||
|
<dd>${CmsPagesSiteInfoModel.domain}</dd>
|
||||||
|
<dt>name</dt>
|
||||||
|
<dd>${CmsPagesSiteInfoModel.name}</dd>
|
||||||
|
<dt>Current category</dt>
|
||||||
|
<dd>${CmsPagesCategoryModel.category.name}</dd>
|
||||||
|
</dl>
|
||||||
|
<h2>Category Tree</h2>
|
||||||
|
<ul>
|
||||||
|
<!--<#list CmsPagesCategoryModel.categoryTree.subCategories as category>
|
||||||
|
<@categoryTreeNode category />
|
||||||
|
</#list>-->
|
||||||
|
<@categoryTreeNode CmsPagesCategoryModel.categoryTree />
|
||||||
|
</ul>
|
||||||
|
<h2>(Index) Item</h2>
|
||||||
|
<#if (CmsPagesCategoryModel.category.hasIndexItem)>
|
||||||
|
<dl>
|
||||||
|
<dt>Name</dt>
|
||||||
|
<dd>${CmsPagesCategorizedItemModel.name}</dd>
|
||||||
|
<dt>Title</dt>
|
||||||
|
<dd>${CmsPagesCategorizedItemModel.title}</dd>
|
||||||
|
<dt>Description</dt>
|
||||||
|
<dd>${CmsPagesCategorizedItemModel.description}</dd>
|
||||||
|
</dl>
|
||||||
|
<#else>
|
||||||
|
<p>No (Index) Item</p>
|
||||||
|
</#if>
|
||||||
|
<h2>Item List</h2>
|
||||||
|
<ul>
|
||||||
|
<#list CmsPagesItemListModel.items as item>
|
||||||
|
<li>
|
||||||
|
<b>${item.title} (${item.name})</b>
|
||||||
|
${item.description}
|
||||||
|
</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<#macro categoryTreeNode category>
|
||||||
|
<li>
|
||||||
|
${category.name}
|
||||||
|
<#if (category.subCategories?size > 0)>
|
||||||
|
<ul>
|
||||||
|
<#list category.subCategories as subCategory>
|
||||||
|
<@categoryTreeNode subCategory />
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
</#if>
|
||||||
|
</li>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
<footer>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="/impressum">
|
||||||
|
<!--Impressum-->
|
||||||
|
${localize("footer.impressum")}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/privacy">
|
||||||
|
<!--Privacy-->
|
||||||
|
${localize("footer.privacy")}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<code>imported</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</footer>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
<#import "../main.html.ftl" as main>
|
||||||
|
|
||||||
|
<@main.ccm_main>
|
||||||
|
<h1>${LoginMessages['login.title']}</h1>
|
||||||
|
<#if (loginFailed)>
|
||||||
|
<div class="alert-error">
|
||||||
|
${LoginMessages['login.errors.failed']}
|
||||||
|
</div>
|
||||||
|
</#if>
|
||||||
|
<form action="${mvc.uri('LoginController#processLogin')}"
|
||||||
|
class="login"
|
||||||
|
method="post">
|
||||||
|
<div class="form-row">
|
||||||
|
<label for="login">${LoginMessages['login.screenname.label']}</label>
|
||||||
|
<input id="login" name="login" required="true" type="text" />
|
||||||
|
</div>
|
||||||
|
<div class="form-row">
|
||||||
|
<label for="password">
|
||||||
|
${LoginMessages['login.password.label']}
|
||||||
|
</label>
|
||||||
|
<input id="password"
|
||||||
|
name="password"
|
||||||
|
required="true"
|
||||||
|
type="password" />
|
||||||
|
</div>
|
||||||
|
<input type="hidden"
|
||||||
|
name="returnUrl"
|
||||||
|
value="${returnUrl}" />
|
||||||
|
|
||||||
|
<button type="submit">
|
||||||
|
${LoginMessages['login.submit']}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</@main.ccm_main>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Category page</title>
|
||||||
|
<link rel="stylesheet" href="${getContextPath()}/theming/ccm/style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<h1>${LoginMessages['login.password_recovered.title']}</h1>
|
||||||
|
<p>${LoginMessages['login.password_recovered.message']}</p>
|
||||||
|
</main>
|
||||||
|
<#include "footer.html.ftl">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Category page</title>
|
||||||
|
<link rel="stylesheet" href="${getContextPath()}/theming/ccm/style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<h1>${LoginMessages['login.recover_password.title']}</h1>
|
||||||
|
<# if (failedToSendRecoverMessage)>
|
||||||
|
<div class="alert-error">
|
||||||
|
${LoginMessages['login.errors.failedToSendRecoverMessage']}
|
||||||
|
</div>
|
||||||
|
</#if>
|
||||||
|
<form action="${mvc.url('LoginController#recoverPassword')}"
|
||||||
|
method="post">
|
||||||
|
<label for="email">${LoginMessages['login.email.label']}</label>
|
||||||
|
<input id="email" name="email" required="true" type="text" />
|
||||||
|
|
||||||
|
<button type="submit">
|
||||||
|
${LoginMessages['login.recover_password.submit']}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</main>
|
||||||
|
<#include "footer.html.ftl">
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Category page</title>
|
||||||
|
<link rel="stylesheet" href="${themeUrl}/style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<h1>Logout successful</h1>
|
||||||
|
<p>Logout successful</p>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<#macro ccm_main scripts=[]>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Category page</title>
|
||||||
|
<link rel="stylesheet" href="${themeUrl}/styles/style.css" />
|
||||||
|
<#list scripts as script>
|
||||||
|
<script src="${themeUrl}/${script}" />
|
||||||
|
</#list>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<a href="https://www.libreccm.org">
|
||||||
|
<img alt="LibreCCM Logo"
|
||||||
|
src="${themeUrl}/images/libreccm.png" />
|
||||||
|
</a>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<#nested>
|
||||||
|
</main>
|
||||||
|
<footer>
|
||||||
|
<p>LibreCCM basic theme. The customize create your own theme.</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
label.critical=Critical
|
||||||
|
label.error=Error
|
||||||
|
label.ok=OK
|
||||||
|
label.warning=Warning
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
footer.impressum=Impressum
|
||||||
|
footer.privacy=Privacy
|
||||||
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "images",
|
||||||
|
"isDirectory": true,
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "libreccm.png",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "image/png"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "settings.properties",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "styles",
|
||||||
|
"isDirectory": true,
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "style.css",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/css"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "templates",
|
||||||
|
"isDirectory": true,
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "login",
|
||||||
|
"isDirectory": true,
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "login-form.html.ftl",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "login-password-recovered.html.ftl",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/plain"
|
||||||
|
}, {
|
||||||
|
"name": "login-recover-password.html.ftl",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/plain"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "logout",
|
||||||
|
"isDirectory": true,
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "loggedout.html.ftl",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeText": "text/plain"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "texts",
|
||||||
|
"isDirectory": true,
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"name": "labels.properties",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/plain"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "theme-bundle.properties",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "theme-index.json",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "application/json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "theme.json",
|
||||||
|
"isDirectory": false,
|
||||||
|
"mimeType": "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,144 @@
|
||||||
|
{
|
||||||
|
"name": "librecms-devel",
|
||||||
|
"type": "freemarker",
|
||||||
|
|
||||||
|
"default-template": "templates/default.html.ftl",
|
||||||
|
|
||||||
|
"mvc-templates": {
|
||||||
|
"default": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Default Template"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "Default Template",
|
||||||
|
"path": "templates/default.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Default Template"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"login-form": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Login Form"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "Login Form",
|
||||||
|
"path": "templates/login/login-form.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Login Form"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"login-recover-password": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Recover lost passwords"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "login-recover-password",
|
||||||
|
"path": "templates/login/login-recover-password.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Recover password"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"login-password-recovered": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Password recovered"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "login-password-recovered",
|
||||||
|
"path": "templates/login/login-password-recovered.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Password recovered"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"loggedout": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Logout successful"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "loggedout",
|
||||||
|
"path": "templates/logout/loggedout.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Logout succesful"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"views": {
|
||||||
|
"default": {
|
||||||
|
"default": "default",
|
||||||
|
"@default": "default"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"loginForm": "login-form",
|
||||||
|
"passwordRecovered": "login-password-recovered",
|
||||||
|
"recoverPassword": "login-recover-password"
|
||||||
|
},
|
||||||
|
"logout": {
|
||||||
|
"loggedout": "loggedout"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -25,7 +25,6 @@
|
||||||
<jar-file>lib/ccm-cms-7.0.0-SNAPSHOT.jar</jar-file>
|
<jar-file>lib/ccm-cms-7.0.0-SNAPSHOT.jar</jar-file>
|
||||||
<jar-file>lib/ccm-shortcuts-7.0.0-SNAPSHOT.jar</jar-file>
|
<jar-file>lib/ccm-shortcuts-7.0.0-SNAPSHOT.jar</jar-file>
|
||||||
|
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!-- Properties for Hibernate -->
|
<!-- Properties for Hibernate -->
|
||||||
<property name="hibernate.hbm2ddl.auto" value="validate" />
|
<property name="hibernate.hbm2ddl.auto" value="validate" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ module.exports = {
|
||||||
devtool: "source-map",
|
devtool: "source-map",
|
||||||
|
|
||||||
entry: {
|
entry: {
|
||||||
"ccm-cms-pagemodelseditor": "./src/main/typescript/ccm-cms-pagemodelseditor.ts",
|
// "ccm-cms-pagemodelseditor": "./src/main/typescript/ccm-cms-pagemodelseditor.ts",
|
||||||
// "ccm-cms-tinymce-loader": "./src/main/typescript/tinymce/ccm-cms-tinymce-loader.ts",
|
// "ccm-cms-tinymce-loader": "./src/main/typescript/tinymce/ccm-cms-tinymce-loader.ts",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
|
@ -43,18 +44,18 @@
|
||||||
<artifactId>ccm-theme-ftllibs-devel</artifactId>
|
<artifactId>ccm-theme-ftllibs-devel</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sf.saxon</groupId>
|
<groupId>org.librecms</groupId>
|
||||||
<artifactId>Saxon-HE</artifactId>
|
<artifactId>ccm-cms-default-theme</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- CCM modules -->
|
<!-- CCM modules -->
|
||||||
<dependency>
|
<!-- <dependency>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-shortcuts</artifactId>
|
<artifactId>ccm-shortcuts</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.librecms</groupId>
|
<groupId>org.librecms</groupId>
|
||||||
<artifactId>ccm-cms</artifactId>
|
<artifactId>ccm-cms</artifactId>
|
||||||
|
|
@ -63,13 +64,10 @@
|
||||||
<!-- CCM Modules end -->
|
<!-- CCM Modules end -->
|
||||||
|
|
||||||
<!-- Dependencies for log4j 2 including adapter for the log4j 1.2 API -->
|
<!-- Dependencies for log4j 2 including adapter for the log4j 1.2 API -->
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
|
||||||
<artifactId>log4j-core</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
<artifactId>log4j-api</artifactId>
|
<artifactId>log4j-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
||||||
|
|
@ -113,8 +113,8 @@
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.3</version>
|
<version>3.3</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -229,7 +229,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<linkXref>true</linkXref>
|
<linkXref>true</linkXref>
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
<sourceEncoding>utf-8</sourceEncoding>
|
||||||
<targetJdk>1.8</targetJdk>
|
<targetJdk>11</targetJdk>
|
||||||
<rulesets>
|
<rulesets>
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
<ruleset>/rulesets/java/basic.xml</ruleset>
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
<ruleset>/rulesets/java/braces.xml</ruleset>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"name": "@librecms/default-theme",
|
||||||
|
"version": "7.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"build": "npm-run-all build:*",
|
||||||
|
"build:mkdir": "shx mkdir -p target/generated-resources/themes/librecms",
|
||||||
|
"build:theme": "shx cp -r src/main/resources/themes/librecms/* target/generated-resources/themes/librecms",
|
||||||
|
"build:icons": "shx cp node_modules/bootstrap-icons/bootstrap-icons.svg target/generated-resources/themes/librecms/images/",
|
||||||
|
"build:js": "webpack",
|
||||||
|
"build:css": "npm-run-all build:css:*",
|
||||||
|
"build:css:librecms": "sass src/main/scss/librecms.scss target/generated-resources/themes/librecms/styles/librecms.css",
|
||||||
|
"build:index": "theme-index-builder target/generated-resources/themes/librecms"
|
||||||
|
},
|
||||||
|
"author": "Jens Pelzetter",
|
||||||
|
"license": "LGPL-3.0-or-later",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bootstrap": "^5.1.8",
|
||||||
|
"npm-run-all": "^4.1.5",
|
||||||
|
"sass": "^1.48.0",
|
||||||
|
"shx": "^0.3.4",
|
||||||
|
"ts-loader": "^9.2.6",
|
||||||
|
"typescript": "^4.5.4",
|
||||||
|
"webpack": "^5.66.0",
|
||||||
|
"webpack-cli": "^4.9.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"bootstrap": "^5.1.3",
|
||||||
|
"bootstrap-icons": "^1.7.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,113 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<timestamp>${maven.build.timestamp}</timestamp>
|
||||||
|
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'Z</maven.build.timestamp.format>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>libreccm-parent</artifactId>
|
||||||
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms-default-theme</artifactId>
|
||||||
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>LibreCMS Default Theme</name>
|
||||||
|
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>Lesser GPL 2.1</name>
|
||||||
|
<url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-static-theme-index-builder</artifactId>
|
||||||
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>ccm-cms-default-theme</finalName>
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
<!-- <resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/typescript</directory>
|
||||||
|
</resource> -->
|
||||||
|
<resource>
|
||||||
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.github.eirslett</groupId>
|
||||||
|
<artifactId>frontend-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<installDirectory>../node</installDirectory>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>Install node.js and NPM</id>
|
||||||
|
<goals>
|
||||||
|
<goal>install-node-and-npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<nodeVersion>v16.14.2</nodeVersion>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>npm install</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>npm link @libreccm/ccm-static-theme-index-builder</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>link @libreccm/ccm-static-theme-index-builder</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>build</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>run build</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>npm link</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>link</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
import "bootstrap";
|
||||||
|
After Width: | Height: | Size: 175 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 180 KiB |
|
|
@ -0,0 +1,63 @@
|
||||||
|
<#macro "org.librecms.assets.AudioAsset" asset>
|
||||||
|
<figure>
|
||||||
|
<audio controls
|
||||||
|
src="/content-sections/${asset.contentSection}/audiomedia${asset.assetPath}"
|
||||||
|
width="240"></audio>
|
||||||
|
<figcaption>${asset.description}</figcaption>
|
||||||
|
</figure>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
<#macro "org.librecms.assets.ExternalAudioAsset" asset>
|
||||||
|
<figure>
|
||||||
|
<audio controls src="${asset.url}" width="240"></audio>
|
||||||
|
<figcaption>${asset.description}</figcaption>
|
||||||
|
</figure>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
<#macro "org.librecms.assets.ExternalVideoAsset" asset>
|
||||||
|
<figure>
|
||||||
|
<video controls src="${asset.url}" width="240"></video>
|
||||||
|
<figcaption>${asset.description}</figcaption>
|
||||||
|
</figure>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
<#macro "org.librecms.assets.FileAsset" asset>
|
||||||
|
<h3><a href="/content-sections/${asset.contentSection}/files${asset.assetPath}">${asset.title}</a></h3>
|
||||||
|
<p>${asset.description}</p>
|
||||||
|
<small>${asset.mimeType} ${asset.size} Bytes</small>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
<#macro "org.librecms.assets.Image" asset>
|
||||||
|
<figure>
|
||||||
|
<img src="/content-sections/${asset.contentSection}/images${asset.assetPath}"
|
||||||
|
width="240" />
|
||||||
|
<figcaption>${asset.description}</figcaption>
|
||||||
|
</figure>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
|
||||||
|
<#macro "org.librecms.assets.RelatedLink" asset>
|
||||||
|
<#if asset.externalLink>
|
||||||
|
<div>
|
||||||
|
<a href="${asset.targetUrl}">${asset.title}</a>
|
||||||
|
<svg class="bi"
|
||||||
|
fill="current-color"
|
||||||
|
height="1em"
|
||||||
|
width="1em">
|
||||||
|
<use xlink:href="${themeUrl}/images/bootstrap-icons.svg#globe" />
|
||||||
|
</svg>
|
||||||
|
<span class="visually-hidden">External link</span>
|
||||||
|
</div>
|
||||||
|
<#else>
|
||||||
|
<a href="${asset.targetItemPath}">${asset.title}</a>
|
||||||
|
</#if>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
<#macro "org.librecms.assets.VideoAsset" asset>
|
||||||
|
<figure>
|
||||||
|
<video controls
|
||||||
|
src="/content-sections/${asset.contentSection}/videos${asset.assetPath}"
|
||||||
|
width="240"></video>
|
||||||
|
<figcaption>${asset.description}</figcaption>
|
||||||
|
</figure>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
<#import "./main.html.ftl" as main>
|
||||||
|
<#import "./assets.html.ftl" as assets>
|
||||||
|
|
||||||
|
<@main.librecms>
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-start justify-content-center">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<#if CmsPagesContentItemTypeModel.itemClass != "">
|
||||||
|
<#assign itemTemplate = .getOptionalTemplate("./contentitems/${CmsPagesContentItemTypeModel.itemClass}.html.ftl")>
|
||||||
|
<#if itemTemplate.exists>
|
||||||
|
<#import "./contentitems/${CmsPagesContentItemTypeModel.itemClass}.html.ftl" as contentitem>
|
||||||
|
<#else>
|
||||||
|
<#import "./contentitems/default.html.ftl" as contentitem>
|
||||||
|
</#if>
|
||||||
|
<@contentitem.details />
|
||||||
|
</#if>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<#list CmsPagesCategorizedItemModel.attachmentLists as attachmentList>
|
||||||
|
<h2>${attachmentList.title}</h2>
|
||||||
|
<p class="item-description">${attachmentList.description}</p>
|
||||||
|
<#list attachmentList.attachments>
|
||||||
|
<ul class="list-group">
|
||||||
|
<#items as attachment>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<@.vars["assets"][attachment.asset.type] attachment.asset />
|
||||||
|
</li>
|
||||||
|
</#items>
|
||||||
|
</ul>
|
||||||
|
</#list>
|
||||||
|
</#list>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<#list CmsPagesItemListModel.getItems()>
|
||||||
|
<div class="row align-items-start">
|
||||||
|
<div class="col-12">
|
||||||
|
<ul class="list-group">
|
||||||
|
<#items as item>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<h2>
|
||||||
|
<a href="/pages/${CmsPagesCategoryModel.category.path}${item.name}.${negotiatedLocale}.html${CmsPagesPageUrlModel.queryString}">${item.title}</a>
|
||||||
|
</h2>
|
||||||
|
<p class="item-description">${item.description}</p>
|
||||||
|
</li>
|
||||||
|
</#items>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</#list>
|
||||||
|
</@main.librecms>
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<#macro details>
|
||||||
|
<h1>${CmsPagesCategorizedItemModel.title}</h1>
|
||||||
|
<p class="item-description">${CmsPagesCategorizedItemModel.description}</p>
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
No template for ${CmsPagesContentItemTypeModel.itemClass} available
|
||||||
|
</div>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<#import "../assets.html.ftl" as assets>
|
||||||
|
|
||||||
|
<#macro details>
|
||||||
|
<h1>${CmsPagesCategorizedItemModel.title}</h1>
|
||||||
|
<p class="item-description">${CmsPagesCategorizedItemModel.description}</p>
|
||||||
|
|
||||||
|
<div class="float-end">
|
||||||
|
<#list CmsPagesCategorizedItemModel.mediaLists as mediaList>
|
||||||
|
<#list mediaList.attachments as media>
|
||||||
|
<@.vars["assets"][media.asset.type] media.asset />
|
||||||
|
</#list>
|
||||||
|
</#list>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
${CmsPagesArticleModel.text}
|
||||||
|
</div>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<#macro details>
|
||||||
|
<div class="d-flex">
|
||||||
|
<h1>
|
||||||
|
${CmsPagesCategorizedItemModel.title}
|
||||||
|
<span class="badge bg-secondary rounded-pill">
|
||||||
|
${CmsPagesEventModel.getStartDateTime('yyyy-MM-dd')}
|
||||||
|
<#if CmsPagesEventModel.getEndDateTime()??>
|
||||||
|
- ${CmsPagesEventModel.getEndDateTime('yyyy-MM-dd')}
|
||||||
|
</#if>
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<p class="item-description">${CmsPagesCategorizedItemModel.description}</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
${CmsPagesEventModel.text}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<#if CmsPagesEventModel.location??>
|
||||||
|
<h2>Location</h2>
|
||||||
|
<div>
|
||||||
|
${CmsPagesEventModel.location}
|
||||||
|
</div>
|
||||||
|
</#if>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
<#macro details>
|
||||||
|
<h1>${CmsPagesCategorizedItemModel.title}</h1>
|
||||||
|
<p class="item-description">${CmsPagesCategorizedItemModel.description}</p>
|
||||||
|
|
||||||
|
<h2>${CmsPagesMultiPartArticleModel.currentSectionTitle}</h2>
|
||||||
|
<div>
|
||||||
|
<nav>
|
||||||
|
<ul class="flex-column float-end nav">
|
||||||
|
<#list CmsPagesMultiPartArticleModel.sectionTitles as section>
|
||||||
|
<li class="nav-item">
|
||||||
|
<#if section?index == CmsPagesMultiPartArticleModel.currentSection>
|
||||||
|
<a aria-current="page"
|
||||||
|
class="active nav-link"
|
||||||
|
href="${CmsPagesMultiPartArticleModel.sectionLinks[section?index]}">
|
||||||
|
${section}
|
||||||
|
</a>
|
||||||
|
<#else>
|
||||||
|
<a class="nav-link"
|
||||||
|
href="${CmsPagesMultiPartArticleModel.sectionLinks[section?index]}">
|
||||||
|
${section}
|
||||||
|
</a>
|
||||||
|
</#if>
|
||||||
|
</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
${CmsPagesMultiPartArticleModel.currentSectionText}
|
||||||
|
<nav>
|
||||||
|
<ul class="pagination">
|
||||||
|
<#if CmsPagesMultiPartArticleModel.prevSectionLink != "">
|
||||||
|
<li class="list-item">
|
||||||
|
<a class="page-link"
|
||||||
|
href="${CmsPagesMultiPartArticleModel.prevSectionLink}">
|
||||||
|
<svg class="bi"
|
||||||
|
fill="current-color"
|
||||||
|
height="1em"
|
||||||
|
width="1em">
|
||||||
|
<use xlink:href="${themeUrl}/images/bootstrap-icons.svg#caret-left-fill" />
|
||||||
|
</svg>
|
||||||
|
<span class="visually-hidden">Previous</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</#if>
|
||||||
|
<#if CmsPagesMultiPartArticleModel.nextSectionLink != "">
|
||||||
|
<li class="list-item">
|
||||||
|
<a class="page-link"
|
||||||
|
href="${CmsPagesMultiPartArticleModel.nextSectionLink}">
|
||||||
|
<svg class="bi"
|
||||||
|
fill="current-color"
|
||||||
|
height="1em"
|
||||||
|
width="1em">
|
||||||
|
<use xlink:href="${themeUrl}/images/bootstrap-icons.svg#caret-right-fill" />
|
||||||
|
</svg>
|
||||||
|
<span class="visually-hidden">Next</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</#if>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<#macro details>
|
||||||
|
<div class="d-flex">
|
||||||
|
<h1>
|
||||||
|
${CmsPagesCategorizedItemModel.title}
|
||||||
|
<span class="badge bg-secondary rounded-pill">
|
||||||
|
${CmsPagesNewsModel.getReleaseDate('yyyy-MM-dd')}
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<p class="item-description">${CmsPagesCategorizedItemModel.description}</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
${CmsPagesNewsModel.text}
|
||||||
|
</div>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link href="${themeUrl}/styles/librecms.css" rel="stylesheet" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Default Template</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<p>This theme works.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>application</dt>
|
||||||
|
<dd>${application}</dd>
|
||||||
|
<dt>themeUrl</dt>
|
||||||
|
<dd>${themeUrl}</dd>
|
||||||
|
<dt>view</dt>
|
||||||
|
<dd>${view!""}</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
<#import "./main.html.ftl" as main>
|
||||||
|
<#-- <#import "./contentitems/${CmsPagesContentItemTypeModel.itemClass}.html.ftl" as contentitem> -->
|
||||||
|
|
||||||
|
<@main.librecms>
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-start justify-content-center">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<#if CmsPagesContentItemTypeModel.itemClass != "">
|
||||||
|
<#assign itemTemplate = .getOptionalTemplate("./contentitems/${CmsPagesContentItemTypeModel.itemClass}.html.ftl")>
|
||||||
|
<#if itemTemplate.exists>
|
||||||
|
<#import "./contentitems/${CmsPagesContentItemTypeModel.itemClass}.html.ftl" as contentitem>
|
||||||
|
<#else>
|
||||||
|
<#import "./contentitems/default.html.ftl" as contentitem>
|
||||||
|
</#if>
|
||||||
|
<@contentitem.details />
|
||||||
|
</#if>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<!-- Attachments -->
|
||||||
|
<h2>Notes</h2>
|
||||||
|
<ul class="list-group mb-4">
|
||||||
|
<li class="list-group-item">
|
||||||
|
<p>
|
||||||
|
A side note with some text
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Occaecat sit eu ipsum irure. Enim consectetur aute anim proident sint dolor sint ea ex eu adipisicing et. Veniam laborum mollit velit incididunt aliquip do esse officia eu ea nostrud nulla.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>More information</h2>
|
||||||
|
<p>
|
||||||
|
Consequat occaecat eu ullamco amet id tempor.
|
||||||
|
</p>
|
||||||
|
<ul class="list-group mb-4">
|
||||||
|
<li class="list-group-item">
|
||||||
|
<p>Anim ex ut reprehenderit in enim id proident duis pariatur est anim do.</p>
|
||||||
|
<a href="https://example.com">A related link</a>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<p>Quis minim deserunt incididunt ea voluptate laboris fugiat elit nulla.</p>
|
||||||
|
<a href="https://example.com">Some download link</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</@main.librecms>
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<#import "./main.html.ftl" as main>
|
||||||
|
|
||||||
|
<@main.librecms>
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col">
|
||||||
|
<div class="bg-light mb-4 rounded-3">
|
||||||
|
<div class="container-fluid py-5">
|
||||||
|
<#if CmsPagesCategorizedItemModel.itemAvailable>
|
||||||
|
<h1 class="display-5 fw-bold">
|
||||||
|
${CmsPagesCategorizedItemModel.title}
|
||||||
|
</h1>
|
||||||
|
<p>
|
||||||
|
${CmsPagesCategorizedItemModel.description}
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-primary btn-lg"
|
||||||
|
href="#">
|
||||||
|
Find out more
|
||||||
|
</a>
|
||||||
|
<#else>
|
||||||
|
<h1 class="display-5 fw-bold">
|
||||||
|
LibreCMS
|
||||||
|
</h1>
|
||||||
|
<p>
|
||||||
|
No index item has been defined.
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-primary btn-lg"
|
||||||
|
href="https://www.libreccm.org">
|
||||||
|
Find out more
|
||||||
|
</a>
|
||||||
|
</#if>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<#-- <#if CmsPagesCategorizedItemModel.itemAvailable>
|
||||||
|
Category has an index item
|
||||||
|
<#else>
|
||||||
|
Category has no index item
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
<h2>Index page</h2>
|
||||||
|
<p>This theme works.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>application</dt>
|
||||||
|
<dd>${application}</dd>
|
||||||
|
<dt>themeUrl</dt>
|
||||||
|
<dd>${themeUrl}</dd>
|
||||||
|
<dt>view</dt>
|
||||||
|
<dd>${view!""}</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2>From <code>ArticleModel</code></h2>
|
||||||
|
<dl>
|
||||||
|
<dt>Title</dt>
|
||||||
|
<dd>${CmsPagesArticleModel.title}</dd>
|
||||||
|
<dt>Description</dt>
|
||||||
|
<dd>${CmsPagesArticleModel.description}</dd>
|
||||||
|
<dt>Text</dt>
|
||||||
|
<dd>${CmsPagesArticleModel.text}</dd>
|
||||||
|
</dl>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row align-items-start justify-content-center">
|
||||||
|
<#list CmsPagesItemListModel.getItems("newslist")>
|
||||||
|
<div class="col">
|
||||||
|
<h2>News</h2>
|
||||||
|
<ul class="list-group">
|
||||||
|
<#items as news>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<h3 class="d-flex w-100 justify-content-between">
|
||||||
|
<div>
|
||||||
|
<a href="/pages${CmsPagesCategoryModel.category.path}${news.name}.${negotiatedLocale}.html${CmsPagesPageUrlModel.queryString}">${news.title}</a>
|
||||||
|
</div>
|
||||||
|
<#-- <div>${news.getReleaseDate('yyyy-MM-dd')}</div> -->
|
||||||
|
<div>${news.getReleaseDate('dd. MMM yyyy')}</div>
|
||||||
|
</h3>
|
||||||
|
<p class="item-description">${news.description}</p>
|
||||||
|
</li>
|
||||||
|
</#items>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</#list>
|
||||||
|
<#list CmsPagesItemListModel.getItems("eventlist")>
|
||||||
|
<div class="col">
|
||||||
|
<h2>Upcoming events</h2>
|
||||||
|
<ul class="list-group">
|
||||||
|
<#items as event>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<h3 class="d-flex w-100 justify-content-between">
|
||||||
|
<div>
|
||||||
|
<a href="/pages${CmsPagesCategoryModel.category.path}${event.name}.${negotiatedLocale}.html${CmsPagesPageUrlModel.queryString}">${event.title}</a>
|
||||||
|
</div>
|
||||||
|
<div>${event.getStartDate('dd. MMM yyyy HH:mm')}</div>
|
||||||
|
</h3>
|
||||||
|
<p class="item-description">${event.description}</p>
|
||||||
|
</li>
|
||||||
|
</#items>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</#list>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<#-- <h2>Item List</h2>
|
||||||
|
<p>Item List size: ${CmsPagesItemListModel.listSize}</p>
|
||||||
|
<dl>
|
||||||
|
<dt>Item List size:</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.listSize}</dd>
|
||||||
|
<dt>Page size</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.pageSize}</dd>
|
||||||
|
<dt>Page</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.page}</dd>
|
||||||
|
<dt>Offset</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.offset}</dd>
|
||||||
|
</dl>
|
||||||
|
<ul>
|
||||||
|
<#list CmsPagesItemListModel.items as item>
|
||||||
|
<li>
|
||||||
|
<dl>
|
||||||
|
<dt>UUID</dt>
|
||||||
|
<dd>${item.uuid}</dd>
|
||||||
|
<dt>displayName</dt>
|
||||||
|
<dd>${item.displayName}</dd>
|
||||||
|
<dt>Name</dt>
|
||||||
|
<dd>${item.name}</dd>
|
||||||
|
<dt>Title</dt>
|
||||||
|
<dd>${item.title}</dd>
|
||||||
|
<dt>description</dt>
|
||||||
|
<dd>${item.description}</dd>
|
||||||
|
<dt>Type</dt>
|
||||||
|
<dd>${item.type}</dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>News List</h2>
|
||||||
|
<p>News List size: ${CmsPagesItemListModel.getListSize("newslist")}</p>
|
||||||
|
<dl>
|
||||||
|
<dt>Item List size:</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.getListSize("newslist")}</dd>
|
||||||
|
<dt>Page size</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.getPageSize("newslist")}</dd>
|
||||||
|
<dt>Page</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.getPage("newslist")}</dd>
|
||||||
|
<dt>Offset</dt>
|
||||||
|
<dd>${CmsPagesItemListModel.getOffset("newslist")}</dd>
|
||||||
|
</dl>
|
||||||
|
<ul>
|
||||||
|
<#list CmsPagesItemListModel.getItems("newslist") as item>
|
||||||
|
<li>
|
||||||
|
<dl>
|
||||||
|
<dt>UUID</dt>
|
||||||
|
<dd>${item.uuid}</dd>
|
||||||
|
<dt>displayName</dt>
|
||||||
|
<dd>${item.displayName}</dd>
|
||||||
|
<dt>Name</dt>
|
||||||
|
<dd>${item.name}</dd>
|
||||||
|
<dt>Title</dt>
|
||||||
|
<dd>${item.title}</dd>
|
||||||
|
<dt>description</dt>
|
||||||
|
<dd>${item.description}</dd>
|
||||||
|
<dt>Type</dt>
|
||||||
|
<dd>${item.type}</dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
</@main.librecms>
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
<#macro librecms scripts=[]>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link href="${themeUrl}/styles/librecms.css" rel="stylesheet" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Default Template</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-expand navbar-light bg-light">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<a class="navbar-brand"
|
||||||
|
href="/pages">
|
||||||
|
<img class="theme-logo img-fluid"
|
||||||
|
src="${themeUrl}/images/librecms.svg" />
|
||||||
|
</a>
|
||||||
|
<button aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Toggle navigation"
|
||||||
|
class="navbar-toggler"
|
||||||
|
data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#navbar-items"
|
||||||
|
type="button">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse"
|
||||||
|
id="navbar-items">
|
||||||
|
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||||
|
<#list CmsPagesCategoryModel.categoryTree.subCategories as category>
|
||||||
|
<li ${category.selected?then("aria-selected=\"page\"","")}
|
||||||
|
class="nav-item ${category.selected?then( "active","")}">
|
||||||
|
<a class="nav-link"
|
||||||
|
href="/pages${category.categoryPath}/index.${negotiatedLocale}.html${CmsPagesPageUrlModel.queryString}">
|
||||||
|
${category.title}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</#list>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<#nested>
|
||||||
|
</main>
|
||||||
|
<script src="${themeUrl}/scripts/librecms.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</#macro>
|
||||||
|
|
@ -0,0 +1,121 @@
|
||||||
|
{
|
||||||
|
"name": "librecms",
|
||||||
|
"type": "freemarker",
|
||||||
|
"master-theme": null,
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "LibreCMS Default Theme"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lang": "de",
|
||||||
|
"value": "LibreCMS Standard Theme"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "The LibreCMS default theme"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lang": "de",
|
||||||
|
"value": "Das LibreCMS Standard Theme"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"mvc-templates": {
|
||||||
|
"category-page": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Template for category pages."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "Category Page Template",
|
||||||
|
"path": "templates/category-page.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Category Page Template"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Default Template used if no other template fits."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "Default Template",
|
||||||
|
"path": "templates/default.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Default Template"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"index-page": {
|
||||||
|
"description": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Template for the index page of a site."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "index-page",
|
||||||
|
"path": "templates/index-page.html.ftl",
|
||||||
|
"title": {
|
||||||
|
"values": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"value": "Index Page"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"views": {
|
||||||
|
"default": {
|
||||||
|
"default": "default",
|
||||||
|
"@default": "default"
|
||||||
|
},
|
||||||
|
"pages": {
|
||||||
|
"category-page": "category-page",
|
||||||
|
"index": "index-page",
|
||||||
|
"default": "default",
|
||||||
|
"@default": "default"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
$primary: #0A9793;
|
||||||
|
|
||||||
|
a.navbar-brand {
|
||||||
|
max-width: 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imgbox-button {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-description {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
@import "custom";
|
||||||
|
@import "../../../node_modules/bootstrap/scss/bootstrap"
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
import "bootstrap";
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"declaration": true,
|
||||||
|
"lib": ["DOM", "ES2016"],
|
||||||
|
"module": "commonjs",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"outDir": "scripts",
|
||||||
|
"sourceMap": true,
|
||||||
|
"strict": true,
|
||||||
|
"target": "ES6"
|
||||||
|
},
|
||||||
|
"include": ["src/main/typescript/**/*"]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
mode: "development",
|
||||||
|
devtool: "source-map",
|
||||||
|
optimization: {
|
||||||
|
chunkIds: false
|
||||||
|
},
|
||||||
|
entry: {
|
||||||
|
librecms: "./src/main/typescript/librecms.ts"
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
filename: "[name].js",
|
||||||
|
path: __dirname + "/target/generated-resources/themes/librecms/scripts"
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: [".tsx", ".ts", ".js", ".jsx"],
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
// all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'
|
||||||
|
{ test: /\.tsx?$/, use: ["ts-loader"], exclude: /node_modules/ },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -75,7 +75,7 @@
|
||||||
<goal>install-node-and-npm</goal>
|
<goal>install-node-and-npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<nodeVersion>v8.11.4</nodeVersion>
|
<nodeVersion>v16.14.2</nodeVersion>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
|
|
@ -93,6 +93,16 @@
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
|
<!-- Sync Maven module version and NPM module version -->
|
||||||
|
<execution>
|
||||||
|
<id>npm version</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>version --allow-same-version=true ${project.version}</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>build</id>
|
<id>build</id>
|
||||||
<goals>
|
<goals>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
|
@ -7,6 +8,7 @@
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<timestamp>${maven.build.timestamp}</timestamp>
|
<timestamp>${maven.build.timestamp}</timestamp>
|
||||||
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'Z</maven.build.timestamp.format>
|
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'Z</maven.build.timestamp.format>
|
||||||
|
<buildNumber></buildNumber>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
|
|
@ -137,7 +139,7 @@
|
||||||
<goal>install-node-and-npm</goal>
|
<goal>install-node-and-npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<nodeVersion>v8.11.4</nodeVersion>
|
<nodeVersion>v16.14.2</nodeVersion>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
|
|
@ -155,6 +157,16 @@
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
|
<!-- Sync Maven module version and NPM module version -->
|
||||||
|
<execution>
|
||||||
|
<id>npm version</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>version --allow-same-version=true ${project.version}${buildNumber}</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>build</id>
|
<id>build</id>
|
||||||
<goals>
|
<goals>
|
||||||
|
|
@ -183,7 +195,7 @@
|
||||||
<phase>deploy</phase>
|
<phase>deploy</phase>
|
||||||
|
|
||||||
<configuration>
|
<configuration>
|
||||||
<arguments>publish --userconfig ../libreccm.npmrc</arguments>
|
<arguments>publish -userconfig ../libreccm.npmrc</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
|
|
@ -191,4 +203,18 @@
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>with-buildnumber</id>
|
||||||
|
<activation>
|
||||||
|
<property>
|
||||||
|
<name>env.BUILD_NUMBER</name>
|
||||||
|
</property>
|
||||||
|
</activation>
|
||||||
|
<properties>
|
||||||
|
<buildNumber>.${env.BUILD_NUMBER}</buildNumber>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,12 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Dependencies for log4j 2 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
|
@ -138,8 +144,8 @@
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -249,7 +255,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<linkXref>true</linkXref>
|
<linkXref>true</linkXref>
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
<sourceEncoding>utf-8</sourceEncoding>
|
||||||
<targetJdk>1.8</targetJdk>
|
<targetJdk>11</targetJdk>
|
||||||
<!-- <rulesets>
|
<!-- <rulesets>
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
<ruleset>/rulesets/java/basic.xml</ruleset>
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
<ruleset>/rulesets/java/braces.xml</ruleset>
|
||||||
|
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import org.librecms.assets.Person;
|
|
||||||
import org.librecms.contentsection.AssetRepository;
|
|
||||||
import org.librecms.contentsection.ContentItemRepository;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.transaction.Transactional;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
@RequestScoped
|
|
||||||
class ProfileSiteItemController {
|
|
||||||
|
|
||||||
public static final String OWNER = "owner";
|
|
||||||
|
|
||||||
public static final String POSITION = "position";
|
|
||||||
|
|
||||||
public static final String INTERSETS = "interests";
|
|
||||||
|
|
||||||
public static final String MISC = "misc";
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AssetRepository assetRepository;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private ContentItemRepository itemRepository;
|
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
|
||||||
public void setOwner(final long profileSiteItemId, final long ownerId) {
|
|
||||||
final ProfileSiteItem profileSiteItem = itemRepository
|
|
||||||
.findById(profileSiteItemId, ProfileSiteItem.class)
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"No ProfileSiteItem with ID %d found.",
|
|
||||||
profileSiteItemId
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
final Person owner = assetRepository
|
|
||||||
.findById(ownerId, Person.class)
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"No Person with ID %d found.", ownerId
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
profileSiteItem.setOwner(owner);
|
|
||||||
itemRepository.save(profileSiteItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPosition(
|
|
||||||
final long profileSiteItemId, final String position, final Locale locale
|
|
||||||
) {
|
|
||||||
final ProfileSiteItem profileSiteItem = itemRepository
|
|
||||||
.findById(profileSiteItemId, ProfileSiteItem.class)
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"No ProfileSiteItem with ID %d found.",
|
|
||||||
profileSiteItemId
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
profileSiteItem.getPosition().addValue(locale, position);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInterests(
|
|
||||||
final long profileSiteItemId,
|
|
||||||
final String interests,
|
|
||||||
final Locale locale
|
|
||||||
) {
|
|
||||||
final ProfileSiteItem profileSiteItem = itemRepository
|
|
||||||
.findById(profileSiteItemId, ProfileSiteItem.class)
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"No ProfileSiteItem with ID %d found.",
|
|
||||||
profileSiteItemId
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
profileSiteItem.getInterests().addValue(locale, interests);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMisc(
|
|
||||||
final long profileSiteItemId, final String misc, final Locale locale
|
|
||||||
) {
|
|
||||||
final ProfileSiteItem profileSiteItem = itemRepository
|
|
||||||
.findById(profileSiteItemId, ProfileSiteItem.class)
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"No ProfileSiteItem with ID %d found.",
|
|
||||||
profileSiteItemId
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
profileSiteItem.getMisc().addValue(locale, misc);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,80 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.FormData;
|
|
||||||
import com.arsdigita.bebop.FormProcessException;
|
|
||||||
import com.arsdigita.bebop.PageState;
|
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.assets.AssetSearchWidget;
|
|
||||||
import com.arsdigita.cms.ui.authoring.CreationSelector;
|
|
||||||
import com.arsdigita.cms.ui.authoring.PageCreateForm;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
|
|
||||||
import org.librecms.assets.Person;
|
|
||||||
import org.librecms.contentsection.ContentItemInitializer;
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemCreate extends PageCreateForm {
|
|
||||||
|
|
||||||
private final static String OWNER_SEARCH = "owner";
|
|
||||||
|
|
||||||
private AssetSearchWidget ownerSearch;
|
|
||||||
|
|
||||||
public ProfileSiteItemCreate(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final CreationSelector creationSelector,
|
|
||||||
final StringParameter selectedLanguageParam
|
|
||||||
) {
|
|
||||||
super(itemModel, creationSelector, selectedLanguageParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addWidgets() {
|
|
||||||
ownerSearch = new AssetSearchWidget(OWNER_SEARCH, Person.class);
|
|
||||||
ownerSearch.setLabel(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site.owner.label", ProfileSiteConstants.BUNDLE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
add(ownerSearch);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void validate(final FormSectionEvent event)
|
|
||||||
throws FormProcessException {
|
|
||||||
super.validate(event);
|
|
||||||
final FormData formData = event.getFormData();
|
|
||||||
|
|
||||||
if (!formData.containsKey(OWNER_SEARCH)
|
|
||||||
|| formData.get(OWNER_SEARCH) == null) {
|
|
||||||
formData.addError(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site.owner.not_selected",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ContentItemInitializer<ProfileSiteItem> getItemInitializer(
|
|
||||||
final FormData formData, final PageState state
|
|
||||||
) {
|
|
||||||
return (item) -> item.setOwner((Person) formData.get(OWNER_SEARCH));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.FormData;
|
|
||||||
import com.arsdigita.bebop.FormProcessException;
|
|
||||||
import com.arsdigita.bebop.Label;
|
|
||||||
import com.arsdigita.bebop.PageState;
|
|
||||||
import com.arsdigita.bebop.event.FormInitListener;
|
|
||||||
import com.arsdigita.bebop.event.FormProcessListener;
|
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
|
||||||
import com.arsdigita.bebop.form.TextArea;
|
|
||||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicItemForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SelectedLanguageUtil;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemInterestsForm
|
|
||||||
extends BasicItemForm
|
|
||||||
implements FormProcessListener, FormInitListener {
|
|
||||||
|
|
||||||
private final StringParameter selectedLangParam;
|
|
||||||
|
|
||||||
public ProfileSiteItemInterestsForm(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
super("ProfileSiteItemEditInterests", itemModel, selectedLangParam);
|
|
||||||
this.selectedLangParam = selectedLangParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addWidgets() {
|
|
||||||
add(
|
|
||||||
new Label(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_item.ui.interests",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
final ParameterModel interestsParam = new StringParameter(
|
|
||||||
ProfileSiteItemController.POSITION);
|
|
||||||
final TextArea interests = new TextArea(interestsParam);
|
|
||||||
interests.setCols(80);
|
|
||||||
interests.setRows(8);
|
|
||||||
add(interests);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(final FormSectionEvent event) throws FormProcessException {
|
|
||||||
final PageState state = event.getPageState();
|
|
||||||
final FormData data = event.getFormData();
|
|
||||||
final ProfileSiteItem profile
|
|
||||||
= (ProfileSiteItem) getItemSelectionModel()
|
|
||||||
.getSelectedItem(state);
|
|
||||||
|
|
||||||
data.put(ProfileSiteItemController.POSITION, profile.getInterests());
|
|
||||||
|
|
||||||
setVisible(state, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void process(final FormSectionEvent event)
|
|
||||||
throws FormProcessException {
|
|
||||||
final PageState state = event.getPageState();
|
|
||||||
final FormData data = event.getFormData();
|
|
||||||
final ProfileSiteItem profile
|
|
||||||
= (ProfileSiteItem) getItemSelectionModel()
|
|
||||||
.getSelectedItem(state);
|
|
||||||
|
|
||||||
if ((profile != null)
|
|
||||||
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
|
|
||||||
|
|
||||||
final ProfileSiteItemController controller = CdiUtil
|
|
||||||
.createCdiUtil()
|
|
||||||
.findBean(ProfileSiteItemController.class);
|
|
||||||
|
|
||||||
final Locale selectedLocale = SelectedLanguageUtil.selectedLocale(
|
|
||||||
state, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
controller.setInterests(
|
|
||||||
profile.getObjectId(),
|
|
||||||
(String) data.get(ProfileSiteItemController.POSITION),
|
|
||||||
selectedLocale
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
init(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.Component;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicItemForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
|
|
||||||
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
|
|
||||||
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemInterestsStep extends SimpleEditStep {
|
|
||||||
|
|
||||||
private String EDIT_POSITION_SHEET_NAME = "editInterests";
|
|
||||||
|
|
||||||
public ProfileSiteItemInterestsStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
this(itemModel, parent, selectedLangParam, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProfileSiteItemInterestsStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam,
|
|
||||||
final String prefix
|
|
||||||
) {
|
|
||||||
super(itemModel, parent, selectedLangParam, prefix);
|
|
||||||
|
|
||||||
final BasicItemForm editInterestsForm = new ProfileSiteItemInterestsForm(
|
|
||||||
itemModel, selectedLangParam
|
|
||||||
);
|
|
||||||
add(
|
|
||||||
EDIT_POSITION_SHEET_NAME,
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_site.ui.interests.edit",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
),
|
|
||||||
new WorkflowLockedComponentAccess(parent, itemModel),
|
|
||||||
editInterestsForm.getSaveCancelSection().getCancelButton()
|
|
||||||
);
|
|
||||||
|
|
||||||
setDisplayComponent(getProfileSiteItemInterestsSheet(
|
|
||||||
itemModel, selectedLangParam)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Component getProfileSiteItemInterestsSheet(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
|
|
||||||
itemModel, false, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
sheet.add(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_item.ui.interests",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
),
|
|
||||||
ProfileSiteItemController.POSITION
|
|
||||||
);
|
|
||||||
|
|
||||||
return sheet;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.FormData;
|
|
||||||
import com.arsdigita.bebop.FormProcessException;
|
|
||||||
import com.arsdigita.bebop.Label;
|
|
||||||
import com.arsdigita.bebop.PageState;
|
|
||||||
import com.arsdigita.bebop.event.FormInitListener;
|
|
||||||
import com.arsdigita.bebop.event.FormProcessListener;
|
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
|
||||||
import com.arsdigita.bebop.form.TextArea;
|
|
||||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicItemForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SelectedLanguageUtil;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemMiscForm
|
|
||||||
extends BasicItemForm
|
|
||||||
implements FormProcessListener, FormInitListener {
|
|
||||||
|
|
||||||
private final StringParameter selectedLangParam;
|
|
||||||
|
|
||||||
public ProfileSiteItemMiscForm(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
super("ProfileSiteItemEditMisc", itemModel, selectedLangParam);
|
|
||||||
this.selectedLangParam = selectedLangParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addWidgets() {
|
|
||||||
add(
|
|
||||||
new Label(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_item.ui.misc",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
final ParameterModel miscParam = new StringParameter(
|
|
||||||
ProfileSiteItemController.POSITION);
|
|
||||||
final TextArea misc = new TextArea(miscParam);
|
|
||||||
misc.setCols(80);
|
|
||||||
misc.setRows(8);
|
|
||||||
add(misc);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(final FormSectionEvent event) throws FormProcessException {
|
|
||||||
final PageState state = event.getPageState();
|
|
||||||
final FormData data = event.getFormData();
|
|
||||||
final ProfileSiteItem profile
|
|
||||||
= (ProfileSiteItem) getItemSelectionModel()
|
|
||||||
.getSelectedItem(state);
|
|
||||||
|
|
||||||
data.put(ProfileSiteItemController.POSITION, profile.getMisc());
|
|
||||||
|
|
||||||
setVisible(state, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void process(final FormSectionEvent event)
|
|
||||||
throws FormProcessException {
|
|
||||||
final PageState state = event.getPageState();
|
|
||||||
final FormData data = event.getFormData();
|
|
||||||
final ProfileSiteItem profile
|
|
||||||
= (ProfileSiteItem) getItemSelectionModel()
|
|
||||||
.getSelectedItem(state);
|
|
||||||
|
|
||||||
if ((profile != null)
|
|
||||||
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
|
|
||||||
|
|
||||||
final ProfileSiteItemController controller = CdiUtil
|
|
||||||
.createCdiUtil()
|
|
||||||
.findBean(ProfileSiteItemController.class);
|
|
||||||
|
|
||||||
final Locale selectedLocale = SelectedLanguageUtil.selectedLocale(
|
|
||||||
state, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
controller.setMisc(
|
|
||||||
profile.getObjectId(),
|
|
||||||
(String) data.get(ProfileSiteItemController.POSITION),
|
|
||||||
selectedLocale
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
init(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.Component;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicItemForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
|
|
||||||
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
|
|
||||||
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemMiscStep extends SimpleEditStep {
|
|
||||||
|
|
||||||
private String EDIT_POSITION_SHEET_NAME = "editMisc";
|
|
||||||
|
|
||||||
public ProfileSiteItemMiscStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
this(itemModel, parent, selectedLangParam, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProfileSiteItemMiscStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam,
|
|
||||||
final String prefix
|
|
||||||
) {
|
|
||||||
super(itemModel, parent, selectedLangParam, prefix);
|
|
||||||
|
|
||||||
final BasicItemForm editMiscForm = new ProfileSiteItemMiscForm(
|
|
||||||
itemModel, selectedLangParam
|
|
||||||
);
|
|
||||||
add(
|
|
||||||
EDIT_POSITION_SHEET_NAME,
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_site.ui.misc.edit",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
),
|
|
||||||
new WorkflowLockedComponentAccess(parent, itemModel),
|
|
||||||
editMiscForm.getSaveCancelSection().getCancelButton()
|
|
||||||
);
|
|
||||||
|
|
||||||
setDisplayComponent(getProfileSiteItemMiscSheet(
|
|
||||||
itemModel, selectedLangParam)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Component getProfileSiteItemMiscSheet(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
|
|
||||||
itemModel, false, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
sheet.add(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_item.ui.misc",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
),
|
|
||||||
ProfileSiteItemController.POSITION
|
|
||||||
);
|
|
||||||
|
|
||||||
return sheet;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.FormData;
|
|
||||||
import com.arsdigita.bebop.FormProcessException;
|
|
||||||
import com.arsdigita.bebop.Label;
|
|
||||||
import com.arsdigita.bebop.PageState;
|
|
||||||
import com.arsdigita.bebop.event.FormInitListener;
|
|
||||||
import com.arsdigita.bebop.event.FormProcessListener;
|
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
|
||||||
import com.arsdigita.bebop.form.TextArea;
|
|
||||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicItemForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SelectedLanguageUtil;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemPositionForm
|
|
||||||
extends BasicItemForm
|
|
||||||
implements FormProcessListener, FormInitListener {
|
|
||||||
|
|
||||||
private final StringParameter selectedLangParam;
|
|
||||||
|
|
||||||
public ProfileSiteItemPositionForm(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
super("ProfileSiteItemEditPosition", itemModel, selectedLangParam);
|
|
||||||
this.selectedLangParam = selectedLangParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addWidgets() {
|
|
||||||
add(
|
|
||||||
new Label(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_item.ui.position",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
final ParameterModel positionParam = new StringParameter(
|
|
||||||
ProfileSiteItemController.POSITION);
|
|
||||||
final TextArea position = new TextArea(positionParam);
|
|
||||||
position.setCols(80);
|
|
||||||
position.setRows(8);
|
|
||||||
add(position);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(final FormSectionEvent event) throws FormProcessException {
|
|
||||||
final PageState state = event.getPageState();
|
|
||||||
final FormData data = event.getFormData();
|
|
||||||
final ProfileSiteItem profile
|
|
||||||
= (ProfileSiteItem) getItemSelectionModel()
|
|
||||||
.getSelectedItem(state);
|
|
||||||
|
|
||||||
data.put(ProfileSiteItemController.POSITION, profile.getPosition());
|
|
||||||
|
|
||||||
setVisible(state, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void process(final FormSectionEvent event)
|
|
||||||
throws FormProcessException {
|
|
||||||
final PageState state = event.getPageState();
|
|
||||||
final FormData data = event.getFormData();
|
|
||||||
final ProfileSiteItem profile
|
|
||||||
= (ProfileSiteItem) getItemSelectionModel()
|
|
||||||
.getSelectedItem(state);
|
|
||||||
|
|
||||||
if ((profile != null)
|
|
||||||
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
|
|
||||||
|
|
||||||
final ProfileSiteItemController controller = CdiUtil
|
|
||||||
.createCdiUtil()
|
|
||||||
.findBean(ProfileSiteItemController.class);
|
|
||||||
|
|
||||||
final Locale selectedLocale = SelectedLanguageUtil.selectedLocale(
|
|
||||||
state, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
controller.setPosition(
|
|
||||||
profile.getObjectId(),
|
|
||||||
(String) data.get(ProfileSiteItemController.POSITION),
|
|
||||||
selectedLocale
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
init(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.Component;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicItemForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
|
|
||||||
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
|
|
||||||
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemPositionStep extends SimpleEditStep {
|
|
||||||
|
|
||||||
private String EDIT_POSITION_SHEET_NAME = "editPosition";
|
|
||||||
|
|
||||||
public ProfileSiteItemPositionStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
this(itemModel, parent, selectedLangParam, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProfileSiteItemPositionStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam,
|
|
||||||
final String prefix
|
|
||||||
) {
|
|
||||||
super(itemModel, parent, selectedLangParam, prefix);
|
|
||||||
|
|
||||||
final BasicItemForm editPositionForm = new ProfileSiteItemPositionForm(
|
|
||||||
itemModel, selectedLangParam
|
|
||||||
);
|
|
||||||
add(
|
|
||||||
EDIT_POSITION_SHEET_NAME,
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_site.ui.position.edit",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
),
|
|
||||||
new WorkflowLockedComponentAccess(parent, itemModel),
|
|
||||||
editPositionForm.getSaveCancelSection().getCancelButton()
|
|
||||||
);
|
|
||||||
|
|
||||||
setDisplayComponent(getProfileSiteItemPositionSheet(
|
|
||||||
itemModel, selectedLangParam)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Component getProfileSiteItemPositionSheet(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
|
|
||||||
itemModel, false, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
sheet.add(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site_item.ui.position",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
),
|
|
||||||
ProfileSiteItemController.POSITION
|
|
||||||
);
|
|
||||||
|
|
||||||
return sheet;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,116 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.Component;
|
|
||||||
import com.arsdigita.bebop.Label;
|
|
||||||
import com.arsdigita.bebop.PageState;
|
|
||||||
import com.arsdigita.bebop.SegmentedPanel;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
|
||||||
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
|
|
||||||
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
|
|
||||||
|
|
||||||
import org.librecms.assets.Person;
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemPropertiesStep extends SimpleEditStep {
|
|
||||||
|
|
||||||
public static final String EDIT_SHEET_NAME = "editProfileSiteItem";
|
|
||||||
|
|
||||||
public ProfileSiteItemPropertiesStep(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final AuthoringKitWizard parent,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
super(itemModel, parent, selectedLangParam);
|
|
||||||
|
|
||||||
setDefaultEditKey(EDIT_SHEET_NAME);
|
|
||||||
|
|
||||||
final SimpleEditStep basicProperties = new SimpleEditStep(
|
|
||||||
itemModel, parent, selectedLangParam, EDIT_SHEET_NAME
|
|
||||||
);
|
|
||||||
final BasicPageForm editBasicSheet = new ProfileSiteItemPropertyForm(
|
|
||||||
itemModel, this, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
basicProperties.add(
|
|
||||||
EDIT_SHEET_NAME,
|
|
||||||
new GlobalizedMessage(
|
|
||||||
ProfileSiteConstants.BUNDLE,
|
|
||||||
"profile_site.ui.edit_basic_properties"
|
|
||||||
),
|
|
||||||
new WorkflowLockedComponentAccess(editBasicSheet, itemModel),
|
|
||||||
editBasicSheet.getSaveCancelSection().getCancelButton()
|
|
||||||
);
|
|
||||||
|
|
||||||
basicProperties.setDisplayComponent(
|
|
||||||
getProfileSiteItemPropertiesSheet(itemModel, selectedLangParam)
|
|
||||||
);
|
|
||||||
|
|
||||||
final SegmentedPanel segmentedPanel = new SegmentedPanel();
|
|
||||||
segmentedPanel.addSegment(
|
|
||||||
new Label(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
ProfileSiteConstants.BUNDLE,
|
|
||||||
"profile_site.ui.basic_properties"
|
|
||||||
)
|
|
||||||
),
|
|
||||||
basicProperties
|
|
||||||
);
|
|
||||||
|
|
||||||
setDisplayComponent(segmentedPanel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Component getProfileSiteItemPropertiesSheet(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
|
|
||||||
itemModel, false, selectedLangParam
|
|
||||||
);
|
|
||||||
|
|
||||||
sheet.add(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
ProfileSiteConstants.BUNDLE, "profile_site.ui.OWNER"
|
|
||||||
),
|
|
||||||
ProfileSiteItemController.OWNER,
|
|
||||||
new OwnerFormatter()
|
|
||||||
);
|
|
||||||
|
|
||||||
return sheet;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class OwnerFormatter
|
|
||||||
implements DomainObjectPropertySheet.AttributeFormatter {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String format(
|
|
||||||
final Object obj, final String attribute, final PageState state
|
|
||||||
) {
|
|
||||||
final ProfileSiteItem profileSiteItem = (ProfileSiteItem) obj;
|
|
||||||
|
|
||||||
final Person owner = profileSiteItem.getOwner();
|
|
||||||
|
|
||||||
if (owner == null) {
|
|
||||||
return "";
|
|
||||||
} else {
|
|
||||||
return owner.getDisplayName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.FormData;
|
|
||||||
import com.arsdigita.bebop.FormProcessException;
|
|
||||||
import com.arsdigita.bebop.event.FormInitListener;
|
|
||||||
import com.arsdigita.bebop.event.FormProcessListener;
|
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
|
||||||
import com.arsdigita.bebop.event.FormValidationListener;
|
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
|
||||||
import com.arsdigita.cms.ItemSelectionModel;
|
|
||||||
import com.arsdigita.cms.ui.assets.AssetSearchWidget;
|
|
||||||
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
|
||||||
import org.librecms.assets.Person;
|
|
||||||
import org.librecms.profilesite.ProfileSiteConstants;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public class ProfileSiteItemPropertyForm
|
|
||||||
extends BasicPageForm
|
|
||||||
implements FormInitListener, FormProcessListener, FormValidationListener {
|
|
||||||
|
|
||||||
public static final String ID = "PublicPersonalProfile_edit";
|
|
||||||
|
|
||||||
private static final String OWNER_SEARCH = "ownerSearch";
|
|
||||||
|
|
||||||
private final ItemSelectionModel itemModel;
|
|
||||||
|
|
||||||
public ProfileSiteItemPropertyForm(
|
|
||||||
final ItemSelectionModel itemModel,
|
|
||||||
final ProfileSiteItemPropertiesStep step,
|
|
||||||
final StringParameter selectedLangParam
|
|
||||||
) {
|
|
||||||
super(ID, itemModel, selectedLangParam);
|
|
||||||
this.itemModel = itemModel;
|
|
||||||
addValidationListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addWidgets() {
|
|
||||||
super.addWidgets();
|
|
||||||
|
|
||||||
final AssetSearchWidget ownerSearch = new AssetSearchWidget(
|
|
||||||
OWNER_SEARCH, Person.class
|
|
||||||
);
|
|
||||||
add(ownerSearch);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(final FormSectionEvent event) throws FormProcessException {
|
|
||||||
final FormData formData = event.getFormData();
|
|
||||||
final ProfileSiteItem profileSiteItem = (ProfileSiteItem) super
|
|
||||||
.initBasicWidgets(event);
|
|
||||||
formData.put(OWNER_SEARCH, profileSiteItem.getOwner());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void validate(final FormSectionEvent event)
|
|
||||||
throws FormProcessException {
|
|
||||||
super.validate(event);
|
|
||||||
|
|
||||||
final FormData formData = event.getFormData();
|
|
||||||
if (!formData.containsKey(OWNER_SEARCH)
|
|
||||||
|| formData.get(OWNER_SEARCH) == null) {
|
|
||||||
formData.addError(
|
|
||||||
new GlobalizedMessage(
|
|
||||||
"profile_site.owner.not_selected",
|
|
||||||
ProfileSiteConstants.BUNDLE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void process(final FormSectionEvent event)
|
|
||||||
throws FormProcessException {
|
|
||||||
|
|
||||||
final ProfileSiteItem profileSiteItem = (ProfileSiteItem) super
|
|
||||||
.processBasicWidgets(event);
|
|
||||||
final FormData formData = event.getFormData();
|
|
||||||
final Person owner = (Person) formData.get(OWNER_SEARCH);
|
|
||||||
|
|
||||||
final ProfileSiteItemController controller = CdiUtil
|
|
||||||
.createCdiUtil()
|
|
||||||
.findBean(ProfileSiteItemController.class);
|
|
||||||
controller.setOwner(profileSiteItem.getObjectId(), owner.getObjectId());
|
|
||||||
|
|
||||||
init(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* Copyright (C) 2021 LibreCCM Foundation.
|
||||||
* To change this template file, choose Tools | Templates
|
*
|
||||||
* and open the template in the editor.
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.librecms.profilesite;
|
package org.librecms.profilesite;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* Copyright (C) 2021 LibreCCM Foundation.
|
||||||
* To change this template file, choose Tools | Templates
|
*
|
||||||
* and open the template in the editor.
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.librecms.profilesite;
|
package org.librecms.profilesite;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,27 @@
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* Copyright (C) 2021 LibreCCM Foundation.
|
||||||
* To change this template file, choose Tools | Templates
|
*
|
||||||
* and open the template in the editor.
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.librecms.profilesite;
|
package org.librecms.profilesite;
|
||||||
|
|
||||||
import com.arsdigita.cms.contenttypes.ui.ProfileSiteItemCreate;
|
|
||||||
import com.arsdigita.cms.contenttypes.ui.ProfileSiteItemInterestsStep;
|
|
||||||
import com.arsdigita.cms.contenttypes.ui.ProfileSiteItemMiscStep;
|
|
||||||
import com.arsdigita.cms.contenttypes.ui.ProfileSiteItemPositionStep;
|
|
||||||
import com.arsdigita.cms.contenttypes.ui.ProfileSiteItemPropertiesStep;
|
|
||||||
|
|
||||||
import org.libreccm.l10n.LocalizedString;
|
import org.libreccm.l10n.LocalizedString;
|
||||||
import org.librecms.assets.Person;
|
import org.librecms.assets.Person;
|
||||||
import org.librecms.contentsection.ContentItem;
|
import org.librecms.contentsection.ContentItem;
|
||||||
import org.librecms.contenttypes.AuthoringKit;
|
|
||||||
import org.librecms.contenttypes.AuthoringStep;
|
|
||||||
import org.librecms.contenttypes.ContentTypeDescription;
|
import org.librecms.contenttypes.ContentTypeDescription;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
@ -40,43 +46,6 @@ import static org.librecms.profilesite.ProfileSiteConstants.*;
|
||||||
labelBundle = "org.librecms.profilesite.ProfileSiteItem",
|
labelBundle = "org.librecms.profilesite.ProfileSiteItem",
|
||||||
descriptionBundle = "org.librecms.profilesite.ProfileSiteItem"
|
descriptionBundle = "org.librecms.profilesite.ProfileSiteItem"
|
||||||
)
|
)
|
||||||
@AuthoringKit(
|
|
||||||
createComponent = ProfileSiteItemCreate.class,
|
|
||||||
steps = {
|
|
||||||
@AuthoringStep(
|
|
||||||
component = ProfileSiteItemPropertiesStep.class,
|
|
||||||
labelBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
labelKey = "profile_site_item.basic_properties.label",
|
|
||||||
descriptionBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
descriptionKey = "profile_site_item.basic_properties.description",
|
|
||||||
order = 1
|
|
||||||
),
|
|
||||||
@AuthoringStep(
|
|
||||||
component = ProfileSiteItemPositionStep.class,
|
|
||||||
labelBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
labelKey = "profile_site_item.position.label",
|
|
||||||
descriptionBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
descriptionKey = "profile_site_item.position.description",
|
|
||||||
order = 2
|
|
||||||
),
|
|
||||||
@AuthoringStep(
|
|
||||||
component = ProfileSiteItemInterestsStep.class,
|
|
||||||
labelBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
labelKey = "profile_site_item.interests.label",
|
|
||||||
descriptionBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
descriptionKey = "profile_site_item.interests.description",
|
|
||||||
order = 3
|
|
||||||
),
|
|
||||||
@AuthoringStep(
|
|
||||||
component = ProfileSiteItemMiscStep.class,
|
|
||||||
labelBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
labelKey = "profile_site_item.misc.label",
|
|
||||||
descriptionBundle = ProfileSiteConstants.BUNDLE,
|
|
||||||
descriptionKey = "profile_site_item.misc.description",
|
|
||||||
order = 4
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
public class ProfileSiteItem extends ContentItem {
|
public class ProfileSiteItem extends ContentItem {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.librecms.profilesite.pagemodel;
|
|
||||||
|
|
||||||
import org.libreccm.pagemodel.ComponentModel;
|
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
import static org.librecms.profilesite.ProfileSiteConstants.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
@Entity
|
|
||||||
@Table(name = "PROFILE_SITE_COMPONENTS", schema = DB_SCHEMA)
|
|
||||||
public class ProfileSiteComponent extends ComponentModel {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,270 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.librecms.profilesite.pagemodel;
|
|
||||||
|
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
|
||||||
import org.apache.logging.log4j.Logger;
|
|
||||||
import org.libreccm.categorization.Category;
|
|
||||||
import org.libreccm.categorization.CategoryManager;
|
|
||||||
import org.libreccm.categorization.CategoryRepository;
|
|
||||||
import org.libreccm.configuration.ConfigurationManager;
|
|
||||||
import org.libreccm.core.CcmObject;
|
|
||||||
import org.libreccm.pagemodel.ComponentRenderer;
|
|
||||||
import org.libreccm.pagemodel.RendersComponent;
|
|
||||||
import org.libreccm.security.PermissionChecker;
|
|
||||||
import org.librecms.assets.Person;
|
|
||||||
import org.librecms.contentsection.ContentItem;
|
|
||||||
import org.librecms.contentsection.ContentItemL10NManager;
|
|
||||||
import org.librecms.contentsection.ContentItemManager;
|
|
||||||
import org.librecms.contentsection.ContentItemVersion;
|
|
||||||
import org.librecms.contentsection.privileges.ItemPrivileges;
|
|
||||||
import org.librecms.pagemodel.assets.AbstractAssetRenderer;
|
|
||||||
import org.librecms.pagemodel.assets.AssetRenderers;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
|
||||||
import javax.enterprise.inject.Instance;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.ws.rs.NotFoundException;
|
|
||||||
import javax.ws.rs.WebApplicationException;
|
|
||||||
import javax.ws.rs.core.Response;
|
|
||||||
|
|
||||||
import static org.librecms.pages.PagesConstants.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
@RequestScoped
|
|
||||||
@RendersComponent(componentModel = ProfileSiteComponent.class)
|
|
||||||
public class ProfileSiteComponentRenderer
|
|
||||||
implements ComponentRenderer<ProfileSiteComponent> {
|
|
||||||
|
|
||||||
private static final Logger LOGGER = LogManager.getLogger(
|
|
||||||
ProfileSiteComponentRenderer.class
|
|
||||||
);
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AssetRenderers assetRenderers;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private CategoryRepository categoryRepo;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private CategoryManager categoryManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private ConfigurationManager confManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private ContentItemL10NManager iteml10nManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private Instance<ProfileSiteContentRenderer> contentRenderers;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private ContentItemManager itemManager;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private PermissionChecker permissionChecker;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, Object> renderComponent(
|
|
||||||
final ProfileSiteComponent componentModel,
|
|
||||||
final Map<String, Object> parameters
|
|
||||||
) {
|
|
||||||
Objects.requireNonNull(componentModel);
|
|
||||||
Objects.requireNonNull(parameters);
|
|
||||||
|
|
||||||
if (!parameters.containsKey(PARAMETER_CATEGORY)) {
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"The parameters map passed to this component does "
|
|
||||||
+ "not include the parameter \"%s\"",
|
|
||||||
PARAMETER_CATEGORY
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(parameters.get(PARAMETER_CATEGORY) instanceof Category)) {
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"The parameters map passed to this ProfileSiteComponent "
|
|
||||||
+ "component contains the parameter \"category\", but "
|
|
||||||
+ "parameter is not of type \"%s\" but of type \"%s\".",
|
|
||||||
Category.class.getName(),
|
|
||||||
parameters.get(PARAMETER_CATEGORY).getClass().getName()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
final Category category = categoryRepo
|
|
||||||
.findById(
|
|
||||||
((CcmObject) parameters.get(PARAMETER_CATEGORY)).getObjectId()
|
|
||||||
)
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new IllegalArgumentException(
|
|
||||||
String.format(
|
|
||||||
"No category with ID %d in the database.",
|
|
||||||
((CcmObject) parameters.get(PARAMETER_CATEGORY))
|
|
||||||
.getObjectId()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
final Optional<CcmObject> indexObj = categoryManager
|
|
||||||
.getIndexObject(category)
|
|
||||||
.stream()
|
|
||||||
.filter(object -> object instanceof ContentItem)
|
|
||||||
.filter(item -> {
|
|
||||||
return ((ContentItem) item)
|
|
||||||
.getVersion() == ContentItemVersion.LIVE;
|
|
||||||
})
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if (indexObj.isPresent()) {
|
|
||||||
|
|
||||||
if (!(indexObj.get() instanceof ProfileSiteItem)) {
|
|
||||||
LOGGER.debug(
|
|
||||||
"The index item of the category {} is not an item of "
|
|
||||||
+ "the class",
|
|
||||||
ProfileSiteItem.class.getName()
|
|
||||||
);
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
final ProfileSiteItem profileSiteItem = (ProfileSiteItem) indexObj
|
|
||||||
.get();
|
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(parameters.get("showDraft"))) {
|
|
||||||
final ProfileSiteItem draftItem = itemManager
|
|
||||||
.getDraftVersion(profileSiteItem, profileSiteItem.getClass());
|
|
||||||
|
|
||||||
if (permissionChecker.isPermitted(
|
|
||||||
ItemPrivileges.PREVIEW, draftItem
|
|
||||||
)) {
|
|
||||||
final Map<String, Object> result = generateItem(
|
|
||||||
componentModel, parameters, draftItem
|
|
||||||
);
|
|
||||||
result.put("showDraft", Boolean.TRUE);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
} else {
|
|
||||||
throw new WebApplicationException(
|
|
||||||
"You are not permitted to view the draft version of "
|
|
||||||
+ "this profile site.",
|
|
||||||
Response.Status.UNAUTHORIZED
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
final ProfileSiteItem liveItem = itemManager
|
|
||||||
.getLiveVersion(profileSiteItem, profileSiteItem.getClass())
|
|
||||||
.orElseThrow(
|
|
||||||
() -> new NotFoundException(
|
|
||||||
"This content item does not have a live version."
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (permissionChecker.isPermitted(
|
|
||||||
ItemPrivileges.VIEW_PUBLISHED, liveItem
|
|
||||||
)) {
|
|
||||||
return generateItem(
|
|
||||||
componentModel, parameters, liveItem
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
throw new WebApplicationException(
|
|
||||||
"You are not permitted to view the live version of "
|
|
||||||
+ "this profile site.",
|
|
||||||
Response.Status.UNAUTHORIZED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOGGER.debug("The category {} does not have a index item.",
|
|
||||||
Objects.toString(category));
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Map<String, Object> generateItem(
|
|
||||||
final ProfileSiteComponent componentModel,
|
|
||||||
final Map<String, Object> parameters,
|
|
||||||
final ProfileSiteItem profileSiteItem
|
|
||||||
) {
|
|
||||||
final Category category = (Category) parameters.get(PARAMETER_CATEGORY);
|
|
||||||
final String categoryName = category.getName();
|
|
||||||
|
|
||||||
final Optional<ProfileSiteContentRenderer> result = contentRenderers
|
|
||||||
.stream()
|
|
||||||
.filter(renderer -> categoryName.equals(renderer.getCategoryName()))
|
|
||||||
.findAny();
|
|
||||||
|
|
||||||
if (result.isPresent()) {
|
|
||||||
return result.get().renderContent(
|
|
||||||
componentModel, parameters, profileSiteItem
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return renderProfileSiteIndexPage(parameters, profileSiteItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Object> renderProfileSiteIndexPage(
|
|
||||||
final Map<String, Object> parameters,
|
|
||||||
final ProfileSiteItem profileSiteItem
|
|
||||||
) {
|
|
||||||
final Locale language;
|
|
||||||
if (parameters.containsKey("language")) {
|
|
||||||
language = new Locale((String) parameters
|
|
||||||
.get(PARAMETER_LANGUAGE));
|
|
||||||
} else {
|
|
||||||
final KernelConfig kernelConfig = confManager
|
|
||||||
.findConfiguration(KernelConfig.class);
|
|
||||||
language = kernelConfig.getDefaultLocale();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iteml10nManager.hasLanguage(profileSiteItem, language)) {
|
|
||||||
|
|
||||||
final Map<String, Object> result = new HashMap<>();
|
|
||||||
|
|
||||||
result.put(
|
|
||||||
"owner", renderOwner(profileSiteItem.getOwner(), language)
|
|
||||||
);
|
|
||||||
result.put(
|
|
||||||
"position", profileSiteItem.getPosition().getValue(language)
|
|
||||||
);
|
|
||||||
result.put(
|
|
||||||
"interests", profileSiteItem.getInterests().getValue(language)
|
|
||||||
);
|
|
||||||
result.put(
|
|
||||||
"misc", profileSiteItem.getMisc().getValue(language)
|
|
||||||
);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
} else {
|
|
||||||
throw new NotFoundException(
|
|
||||||
"Requested language is not available.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Object> renderOwner(
|
|
||||||
final Person owner, final Locale language
|
|
||||||
) {
|
|
||||||
final AbstractAssetRenderer renderer = assetRenderers.findRenderer(
|
|
||||||
owner.getClass()
|
|
||||||
);
|
|
||||||
|
|
||||||
return renderer.render(owner, language);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.librecms.profilesite.pagemodel;
|
|
||||||
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
public interface ProfileSiteContentRenderer {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides the category name for which this renderer is responsible.
|
|
||||||
*
|
|
||||||
* @return The category name for which this renderer is responsible.
|
|
||||||
*/
|
|
||||||
String getCategoryName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renders special content for a profile site depending on the current
|
|
||||||
* category.
|
|
||||||
*
|
|
||||||
* @param componentModel
|
|
||||||
* @param parameters
|
|
||||||
* @param profileSiteItem
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Map<String, Object> renderContent(
|
|
||||||
ProfileSiteComponent componentModel,
|
|
||||||
Map<String, Object> parameters,
|
|
||||||
ProfileSiteItem profileSiteItem
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.librecms.profilesite.pagemodel.contentitem;
|
|
||||||
|
|
||||||
import org.librecms.contentsection.ContentItem;
|
|
||||||
import org.librecms.pagemodel.assets.AssetRenderers;
|
|
||||||
import org.librecms.pagemodel.contentitems.AbstractContentItemRenderer;
|
|
||||||
import org.librecms.pagemodel.contentitems.ContentItemRenderer;
|
|
||||||
import org.librecms.profilesite.ProfileSiteItem;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
@ContentItemRenderer(renders = ProfileSiteItem.class)
|
|
||||||
@RequestScoped
|
|
||||||
public class ProfileSiteItemRenderer extends AbstractContentItemRenderer {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AssetRenderers assetRenderers;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void renderItem(
|
|
||||||
final ContentItem item,
|
|
||||||
final Locale language,
|
|
||||||
final Map<String, Object> result
|
|
||||||
) {
|
|
||||||
// Nothing
|
|
||||||
// final ProfileSiteItem profileSiteItem;
|
|
||||||
// if (item instanceof ProfileSiteItem) {
|
|
||||||
// profileSiteItem = (ProfileSiteItem) item;
|
|
||||||
// } else {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected AssetRenderers getAssetRenderers() {
|
|
||||||
return assetRenderers;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
<goal>install-node-and-npm</goal>
|
<goal>install-node-and-npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<nodeVersion>v8.11.4</nodeVersion>
|
<nodeVersion>v16.14.2</nodeVersion>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,12 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Dependencies for log4j 2 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
|
@ -137,8 +143,8 @@
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -246,7 +252,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<linkXref>true</linkXref>
|
<linkXref>true</linkXref>
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
<sourceEncoding>utf-8</sourceEncoding>
|
||||||
<targetJdk>1.8</targetJdk>
|
<targetJdk>11</targetJdk>
|
||||||
<!-- <rulesets>
|
<!-- <rulesets>
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
<ruleset>/rulesets/java/basic.xml</ruleset>
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
<ruleset>/rulesets/java/braces.xml</ruleset>
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,13 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Dependencies for log4j 2 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
|
|
@ -136,8 +143,8 @@
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -245,7 +252,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<linkXref>true</linkXref>
|
<linkXref>true</linkXref>
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
<sourceEncoding>utf-8</sourceEncoding>
|
||||||
<targetJdk>1.8</targetJdk>
|
<targetJdk>11</targetJdk>
|
||||||
<!-- <rulesets>
|
<!-- <rulesets>
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
<ruleset>/rulesets/java/basic.xml</ruleset>
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
<ruleset>/rulesets/java/braces.xml</ruleset>
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,12 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Dependencies for log4j 2 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
|
@ -137,8 +143,8 @@
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -246,7 +252,7 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<linkXref>true</linkXref>
|
<linkXref>true</linkXref>
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
<sourceEncoding>utf-8</sourceEncoding>
|
||||||
<targetJdk>1.8</targetJdk>
|
<targetJdk>11</targetJdk>
|
||||||
<!-- <rulesets>
|
<!-- <rulesets>
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
<ruleset>/rulesets/java/basic.xml</ruleset>
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
<ruleset>/rulesets/java/braces.xml</ruleset>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* Copyright (C) 2021 LibreCCM Foundation.
|
||||||
* To change this template file, choose Tools | Templates
|
*
|
||||||
* and open the template in the editor.
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.librecms.contenttypes.decisiontree;
|
package org.librecms.contenttypes.decisiontree;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* Copyright (C) 2021 LibreCCM Foundation.
|
||||||
* To change this template file, choose Tools | Templates
|
*
|
||||||
* and open the template in the editor.
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.librecms.contenttypes.decisiontree;
|
package org.librecms.contenttypes.decisiontree;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
/*
|
/*
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
* Copyright (C) 2021 LibreCCM Foundation.
|
||||||
* To change this template file, choose Tools | Templates
|
*
|
||||||
* and open the template in the editor.
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.librecms.contenttypes.decisiontree;
|
package org.librecms.contenttypes.decisiontree;
|
||||||
|
|
||||||
|
|
|
||||||