Pollen-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
May 2014
- 5 participants
- 203 discussions
30 May '14
See <http://ci.chorem.org/jenkins/job/pollen-rest-api-ci/525/>
------------------------------------------
[...truncated 249 lines...]
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/da.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/de.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/el.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/en.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/es.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/et.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/he.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/id.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/it.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/km.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/no.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/si.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/th.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/about/dialogs/about.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/about/dialogs/logo_ckeditor.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/clipboard/dialogs/paste.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/dialog/dialogDefinition.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/fakeobjects/images/spacer.gif: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/icons.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/icons_hidpi.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/image/dialogs/image.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/image/images/noimage.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/link/dialogs/anchor.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/link/dialogs/link.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/link/images/anchor.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/link/images/hidpi/anchor.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/magicline/images/hidpi/icon.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/magicline/images/icon.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/pastefromword/filter/default.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/scayt/LICENSE.md: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/scayt/README.md: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/scayt/dialogs/options.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/scayt/dialogs/toolbar.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/ar.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/bg.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/ca.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/cs.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/cy.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/de.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/el.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/en.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/eo.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/es.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/et.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/fa.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/fi.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/fr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/gl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/he.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/hr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/hu.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/id.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/it.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/ja.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/km.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/ku.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/lv.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/nb.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/nl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/no.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/pl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/pt.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/ru.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/si.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/sk.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/sl.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/sq.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/sv.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/th.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/tr.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/ug.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/uk.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/vi.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/lang/zh.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/specialchar/dialogs/specialchar.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/table/dialogs/table.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/tabletools/dialogs/tableCell.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/LICENSE.md: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/README.md: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/dialogs/ciframe.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/dialogs/tmp.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/dialogs/tmpFrameset.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/dialogs/wsc.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/dialogs/wsc.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/plugins/wsc/dialogs/wsc_ie.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/ajax.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/api.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/appendto.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/assets/inlineall/logo.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/assets/outputxhtml/outputxhtml.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/assets/posteddata.php: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/assets/sample.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/assets/sample.jpg: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/assets/uilanguages/languages.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/datafiltering.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/divreplace.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/index.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/inlineall.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/inlinebycode.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/inlinetextarea.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/jquery.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/dialog/assets/my_dialog.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/dialog/dialog.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/enterkey/enterkey.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/htmlwriter/outputforflash.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/htmlwriter/outputhtml.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/magicline/magicline.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/toolbar/toolbar.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/plugins/wysiwygarea/fullpage.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/readonly.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/replacebyclass.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/replacebycode.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/sample.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/sample.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/sample_posteddata.php: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/tabindex.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/uicolor.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/uilanguages.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/samples/xhtmlstyle.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/dialog.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/dialog_ie.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/dialog_ie7.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/dialog_ie8.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/dialog_iequirks.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/dialog_opera.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/editor.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/editor_gecko.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/editor_ie.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/editor_ie7.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/editor_ie8.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/editor_iequirks.css: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/icons.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/icons_hidpi.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/arrow.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/close.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/hidpi/close.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/hidpi/lock-open.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/hidpi/lock.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/hidpi/refresh.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/lock-open.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/lock.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/images/refresh.png: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/skins/moono/readme.md: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/libs/ckeditor/styles.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/js/services.js: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/big-poll.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/home.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/inline-poll.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/poll-list.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/poll-popupChoice.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/poll-settings.html: Permission denied
warning: unable to unlink pollen-ui-angular/src/main/webapp/partials/poll.html: Permission denied
warning: unable to unlink pollen-ui-js/src/main/resources/nuiton-js/wro.properties: Permission denied
warning: unable to unlink pollen-ui-js/src/main/resources/nuiton-js/wro.xml: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/bundle/Messages.properties: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/css/bootstrap-datetimepicker.min.css: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/css/style.css: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/img/glyphicons_050_link.png: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/img/pollen.png: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/index.html: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/controls/menu.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/controls/poll_form.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/controls/poll_list.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/controls/poll_summary.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/controls/user_form.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/controls/vote.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/libs/bootstrap-datetimepicker.min.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/libs/jquery.scrollto.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/models/choices.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/models/comments.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/models/polls.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/models/users.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/models/votes.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/pollen-utils.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/js/route.js: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/views/menu.ejs: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/views/poll_form.ejs: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/views/poll_list.ejs: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/views/summary.ejs: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/views/user_form.ejs: Permission denied
warning: unable to unlink pollen-ui-js/src/main/webapp/views/vote.ejs: Permission denied
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenApplicationConfigProvider.java (Permission denied)
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java (Permission denied)
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java (Permission denied)
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenFunctions.java (Permission denied)
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenIOUtil.java (Permission denied)
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenTechnicalException.java (Permission denied)
error: unable to create file pollen-persistence/src/main/java/org/chorem/pollen/PollenTopiaRootContextFactory.java (Permission denied)
fatal: cannot create directory at 'pollen-persistence/src/main/java/org/chorem/pollen/business': Permission denied
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1307)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1283)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1279)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1084)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1094)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1462)
... 9 more
1
1
30 May '14
See <http://ci.chorem.org/jenkins/job/pollen-rest-api-ci/492/>
------------------------------------------
Started by an SCM change
Building in workspace <http://ci.chorem.org/jenkins/job/pollen-rest-api-ci/ws/>
Fetching changes from the remote Git repository
Fetching upstream changes from https://git.chorem.org/pollen.git
FATAL: Failed to fetch from https://git.chorem.org/pollen.git
hudson.plugins.git.GitException: Failed to fetch from https://git.chorem.org/pollen.git
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:623)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:855)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:880)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1251)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:605)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:514)
at hudson.model.Run.execute(Run.java:1703)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:525)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress https://git.chorem.org/pollen.git +refs/heads/master:refs/remotes/origin/devel" returned status code 128:
stdout:
stderr: error: RPC failed; result=22, HTTP code = 401
fatal: The remote end hung up unexpectedly
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1276)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1146)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$200(CliGitAPIImpl.java:87)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:254)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:621)
... 10 more
1
32
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit c6b45827e2ba036e588ef814f596c2340b994241
Author: root <root(a)codelutin.com>
Date: Thu May 29 19:27:52 2014 +0200
add todo
---
README.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.txt b/README.txt
index 586591d..46a23de 100644
--- a/README.txt
+++ b/README.txt
@@ -2,6 +2,7 @@ POLLEN
------
TODO Translate me
+TODO Update it
Pollen est une application Web de sondages en ligne qui permet de créer et de
gérer des sondages avec différents types de choix (texte, date, image).
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
New commit to branch master in repository Pollen.
See http://git.None/Pollen.git
commit a1edf8151d1852622dd6fd94dd4bf2d551344e3c
Author: Maven Release <maven-release(a)codelutin.com>
Date: Thu May 29 19:24:45 2014 +0200
add todo
---
README.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.txt b/README.txt
index 4b24402..274c263 100644
--- a/README.txt
+++ b/README.txt
@@ -6,6 +6,7 @@ gérer des sondages avec différents types de choix (texte, date, image).
Les votants peuvent participer au sondage en suivant un lien qui identifie le
sondage.
+TODO Revoir ce document qui n'est plus à jour
INSTALLATION
------------
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit af2161107c43eedee49c679a1f2a3574122420ca
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 29 19:15:38 2014 +0200
update scm informations
---
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index a00355d..7b40f7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,11 +140,11 @@
</modules>
<scm>
- <connection>scm:git:https://git.chorem.org/pollen.git</connection>
+ <connection>scm:git:http://git.chorem.org/pollen.git</connection>
<developerConnection>
scm:git:https://git.chorem.org/pollen.git
</developerConnection>
- <url>http://forge.chorem.org/projects/pollen/repository</url>
+ <url>https://gitweb.chorem.org/pollen.git</url>
</scm>
<distributionManagement>
<site>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
29 May '14
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit ba448681789e773fae7ba3864408fb22698a1572
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Thu May 29 18:17:22 2014 +0200
review favorite list member and voter list member association
---
.../persistence/entity/FavoriteListTopiaDao.java | 41 ++
.../persistence/entity/VoterListTopiaDao.java | 41 ++
pollen-persistence/src/main/xmi/pollen.properties | 9 -
pollen-persistence/src/main/xmi/pollen.zargo | Bin 18454 -> 18462 bytes
.../chorem/pollen/rest/api/v1/FavoriteListApi.java | 15 +-
.../org/chorem/pollen/rest/api/v1/PollApi.java | 10 +-
.../pollen/services/bean/FavoriteListBean.java | 38 --
.../chorem/pollen/services/bean/VoterListBean.java | 29 -
.../services/config/PollenServiceConfig.java | 6 +
.../services/config/PollenServiceConfigOption.java | 12 +
.../services/service/FavoriteListService.java | 183 ++++---
.../pollen/services/service/FixturesService.java | 2 +-
.../pollen/services/service/PollService.java | 62 +--
.../services/service/VoteCountingService.java | 3 +-
.../pollen/services/service/VoterListService.java | 112 ++--
.../i18n/pollen-services_en_GB.properties | 1 +
.../i18n/pollen-services_fr_FR.properties | 1 +
.../services/service/FavoriteListServiceTest.java | 323 +++++++++++
.../pollen/services/service/PollServiceTest.java | 604 ++++++++++-----------
.../services/service/VoteCountingServiceTest.java | 2 +-
pom.xml | 2 +-
src/site/rst/restApi.rst | 21 +
22 files changed, 915 insertions(+), 602 deletions(-)
diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/FavoriteListTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/FavoriteListTopiaDao.java
new file mode 100644
index 0000000..8705347
--- /dev/null
+++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/FavoriteListTopiaDao.java
@@ -0,0 +1,41 @@
+package org.chorem.pollen.persistence.entity;
+
+/*
+ * #%L
+ * Pollen :: Persistence
+ * %%
+ * Copyright (C) 2009 - 2014 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+import java.util.List;
+
+public class FavoriteListTopiaDao extends AbstractFavoriteListTopiaDao<FavoriteList> {
+
+ @Override
+ public void delete(FavoriteList entity) {
+
+ // --- Delete members --- //
+
+ FavoriteListMemberTopiaDao dao = topiaDaoSupplier
+ .getDao(FavoriteListMember.class, FavoriteListMemberTopiaDao.class);
+ List<FavoriteListMember> list = dao.forFavoriteListEquals(entity).findAll();
+ dao.deleteAll(list);
+
+ super.delete(entity);
+
+ }
+}
diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java
new file mode 100644
index 0000000..506eb9e
--- /dev/null
+++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java
@@ -0,0 +1,41 @@
+package org.chorem.pollen.persistence.entity;
+
+/*
+ * #%L
+ * Pollen :: Persistence
+ * %%
+ * Copyright (C) 2009 - 2014 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+import java.util.List;
+
+public class VoterListTopiaDao extends AbstractVoterListTopiaDao<VoterList> {
+
+ @Override
+ public void delete(VoterList entity) {
+
+ // --- Delete members --- //
+
+ VoterListMemberTopiaDao dao = topiaDaoSupplier
+ .getDao(VoterListMember.class, VoterListMemberTopiaDao.class);
+ List<VoterListMember> list = dao.forVoterListEquals(entity).findAll();
+ dao.deleteAll(list);
+
+ super.delete(entity);
+
+ }
+}
diff --git a/pollen-persistence/src/main/xmi/pollen.properties b/pollen-persistence/src/main/xmi/pollen.properties
index 0b63cf7..0b26c1f 100644
--- a/pollen-persistence/src/main/xmi/pollen.properties
+++ b/pollen-persistence/src/main/xmi/pollen.properties
@@ -32,15 +32,6 @@ org.chorem.pollen.persistence.entity.Poll.attribute.description.tagValue.hiberna
org.chorem.pollen.persistence.entity.Choice.attribute.description.tagValue.hibernateAttributeType=text
org.chorem.pollen.persistence.entity.Comment.attribute.text.tagValue.hibernateAttributeType=text
-# Ordered
-org.chorem.pollen.persistence.entity.Poll.attribute.choice.stereotype=ordered
-org.chorem.pollen.persistence.entity.Poll.attribute.voterList.stereotype=ordered
-org.chorem.pollen.persistence.entity.Poll.attribute.vote.stereotype=ordered
-org.chorem.pollen.persistence.entity.Poll.attribute.comment.stereotype=ordered
-org.chorem.pollen.persistence.entity.PollenUser.attribute.favoriteList.stereotype=ordered
-org.chorem.pollen.persistence.entity.FavoriteList.attribute.member.stereotype=ordered, unique
-org.chorem.pollen.persistence.entity.VoterList.attribute.member.stereotype=unique
-
# clef naturelle non modifiable sur PollenToken.token
org.chorem.pollen.persistence.entity.PollenToken.class.tagValue.naturalIdMutable=true
org.chorem.pollen.persistence.entity.PollenToken.attribute.token.stereotype=unique
diff --git a/pollen-persistence/src/main/xmi/pollen.zargo b/pollen-persistence/src/main/xmi/pollen.zargo
index 271cc74..7d095e4 100644
Binary files a/pollen-persistence/src/main/xmi/pollen.zargo and b/pollen-persistence/src/main/xmi/pollen.zargo differ
diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FavoriteListApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FavoriteListApi.java
index 76e7d8f..8295bd1 100644
--- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FavoriteListApi.java
+++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FavoriteListApi.java
@@ -37,7 +37,6 @@ import org.chorem.pollen.services.service.InvalidFormException;
import org.debux.webmotion.server.WebMotionController;
import java.io.File;
-import java.util.Set;
/**
* TODO
@@ -81,23 +80,21 @@ public class FavoriteListApi extends WebMotionController {
}
- public int importFavoriteListMembersFromCsv(FavoriteListService favoriteListService, PollenEntityId<FavoriteList> favoriteListId, File csvFile) throws FavoriteListImportException {
+ public void importFavoriteListMembersFromCsv(FavoriteListService favoriteListService, PollenEntityId<FavoriteList> favoriteListId, File csvFile) throws FavoriteListImportException {
- int i = favoriteListService.importFavoriteListMembersFromCsv(favoriteListId.getEntityId(), csvFile);
- return i;
+ favoriteListService.importFavoriteListMembersFromCsv(favoriteListId.getEntityId(), csvFile);
}
- public int importFavoriteListMembersFromLdap(FavoriteListService favoriteListService, PollenEntityId<FavoriteList> favoriteListId, String ldap) throws FavoriteListImportException {
+ public void importFavoriteListMembersFromLdap(FavoriteListService favoriteListService, PollenEntityId<FavoriteList> favoriteListId, String ldap) throws FavoriteListImportException {
- int i = favoriteListService.importFavoriteListMembersFromLdap(favoriteListId.getEntityId(), ldap);
- return i;
+ favoriteListService.importFavoriteListMembersFromLdap(favoriteListId.getEntityId(), ldap);
}
- public Set<FavoriteListMemberBean> getMembers(FavoriteListService favoriteListService, PollenEntityId<FavoriteList> favoriteListId) {
+ public PaginationResultBean<FavoriteListMemberBean> getMembers(FavoriteListService favoriteListService, PollenEntityId<FavoriteList> favoriteListId) {
- Set<FavoriteListMemberBean> members = favoriteListService.getFavoriteListMembers(favoriteListId.getEntityId());
+ PaginationResultBean<FavoriteListMemberBean> members = favoriteListService.getFavoriteListMembers(favoriteListId.getEntityId(), null);
return members;
}
diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java
index ece5097..9a6f671 100644
--- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java
+++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java
@@ -27,11 +27,10 @@ import org.chorem.pollen.persistence.entity.Poll;
import org.chorem.pollen.rest.api.PollenRestApiUtil;
import org.chorem.pollen.services.bean.ChoiceBean;
import org.chorem.pollen.services.bean.PaginationParameterBean;
+import org.chorem.pollen.services.bean.PaginationResultBean;
import org.chorem.pollen.services.bean.PollBean;
import org.chorem.pollen.services.bean.PollenEntityId;
import org.chorem.pollen.services.bean.PollenEntityRef;
-import org.chorem.pollen.services.bean.PaginationResultBean;
-import org.chorem.pollen.services.bean.VoterListBean;
import org.chorem.pollen.services.service.InvalidFormException;
import org.chorem.pollen.services.service.PollService;
import org.debux.webmotion.server.WebMotionController;
@@ -91,14 +90,11 @@ public class PollApi extends WebMotionController {
public PollenEntityRef<Poll> createPoll(PollService pollService,
PollBean poll,
- ChoiceBean[] choices,
- VoterListBean[] voterLists) throws InvalidFormException {
+ ChoiceBean[] choices) throws InvalidFormException {
List<ChoiceBean> choiceList = PollenRestApiUtil.toList(choices);
- List<VoterListBean> voterListList = PollenRestApiUtil.toList(voterLists);
-
- PollenEntityRef<Poll> principalRef = pollService.createPoll(poll, choiceList, voterListList);
+ PollenEntityRef<Poll> principalRef = pollService.createPoll(poll, choiceList);
return principalRef;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java
index 14ac766..c1057be 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java
@@ -23,10 +23,6 @@ package org.chorem.pollen.services.bean;
import org.chorem.pollen.persistence.entity.FavoriteList;
import org.chorem.pollen.persistence.entity.FavoriteListImpl;
-import org.chorem.pollen.persistence.entity.FavoriteListMember;
-
-import java.util.HashSet;
-import java.util.Set;
/**
* Created on 5/15/14.
@@ -38,10 +34,6 @@ public class FavoriteListBean extends PollenBean<FavoriteList> {
protected String name;
- protected double weight;
-
- protected Set<FavoriteListMemberBean> member = new HashSet<>();
-
public FavoriteListBean() {
super(FavoriteList.class);
}
@@ -52,14 +44,6 @@ public class FavoriteListBean extends PollenBean<FavoriteList> {
setEntityId(entity.getTopiaId());
setName(entity.getName());
- member.clear();
-
- for (FavoriteListMember voterListMemberEntity : entity.getMember()) {
-
- FavoriteListMemberBean voterListMemberBean = new FavoriteListMemberBean();
- voterListMemberBean.fromEntity(voterListMemberEntity);
- addMember(voterListMemberBean);
- }
}
@Override
@@ -69,13 +53,6 @@ public class FavoriteListBean extends PollenBean<FavoriteList> {
entity.setTopiaId(getEntityId());
entity.setName(getName());
- for (FavoriteListMemberBean voterListMemberBean : member) {
-
- FavoriteListMember voterListMember = voterListMemberBean.toEntity();
- entity.addMember(voterListMember);
-
- }
-
return entity;
}
@@ -89,19 +66,4 @@ public class FavoriteListBean extends PollenBean<FavoriteList> {
this.name = name;
}
- public double getWeight() {
- return weight;
- }
-
- public void setWeight(double weight) {
- this.weight = weight;
- }
-
- public Set<FavoriteListMemberBean> getMember() {
- return member;
- }
-
- public void addMember(FavoriteListMemberBean member) {
- this.member.add(member);
- }
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java
index f31ffe5..0ed7f5e 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java
@@ -23,10 +23,6 @@ package org.chorem.pollen.services.bean;
import org.chorem.pollen.persistence.entity.VoterList;
import org.chorem.pollen.persistence.entity.VoterListImpl;
-import org.chorem.pollen.persistence.entity.VoterListMember;
-
-import java.util.HashSet;
-import java.util.Set;
/**
* Created on 5/15/14.
@@ -40,8 +36,6 @@ public class VoterListBean extends PollenBean<VoterList> {
protected double weight;
- protected Set<VoterListMemberBean> member = new HashSet<>();
-
public VoterListBean() {
super(VoterList.class);
}
@@ -53,14 +47,6 @@ public class VoterListBean extends PollenBean<VoterList> {
setName(entity.getName());
setWeight(entity.getWeight());
- member.clear();
-
- for (VoterListMember voterListMemberEntity : entity.getMember()) {
-
- VoterListMemberBean voterListMemberBean = new VoterListMemberBean();
- voterListMemberBean.fromEntity(voterListMemberEntity);
- addMember(voterListMemberBean);
- }
}
@Override
@@ -71,13 +57,6 @@ public class VoterListBean extends PollenBean<VoterList> {
entity.setName(getName());
entity.setWeight(getWeight());
- for (VoterListMemberBean voterListMemberBean : member) {
-
- VoterListMember voterListMember = voterListMemberBean.toEntity();
- entity.addMember(voterListMember);
-
- }
-
return entity;
}
@@ -86,7 +65,6 @@ public class VoterListBean extends PollenBean<VoterList> {
return name;
}
-
public void setName(String name) {
this.name = name;
}
@@ -99,11 +77,4 @@ public class VoterListBean extends PollenBean<VoterList> {
this.weight = weight;
}
- public Set<VoterListMemberBean> getMember() {
- return member;
- }
-
- public void addMember(VoterListMemberBean member) {
- this.member.add(member);
- }
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java
index a7c6b8b..5834964 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java
@@ -183,6 +183,12 @@ public class PollenServiceConfig {
return result;
}
+ public int getDefaultFavoriteListMemberPaginationSize() {
+ int result = applicationConfig.getOptionAsInt(
+ PollenServiceConfigOption.DEFAULT_FAVORITE_LIST_MEMBERS_PAGE_SIZE.key);
+ return result;
+ }
+
public int getDefaultPollenUserPaginationSize() {
int result = applicationConfig.getOptionAsInt(
PollenServiceConfigOption.DEFAULT_POLLEN_USERS_PAGE_SIZE.key);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java
index d47629f..3193322 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java
@@ -152,6 +152,18 @@ public enum PollenServiceConfigOption implements ConfigOptionDef {
n("pollen.configuration.defaultFavoriteListPageSize"),
"10",
int.class),
+
+ /**
+ * Default favorite list members pagination page size.
+ *
+ * @since 2.0
+ */
+ DEFAULT_FAVORITE_LIST_MEMBERS_PAGE_SIZE(
+ "pollen.default.favoriteListMemberPageSize",
+ n("pollen.configuration.defaultFavoriteListMemberPageSize"),
+ "10",
+ int.class),
+
/**
* Default pollen users pagination page size.
*
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
index 4c14481..aabf7af 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java
@@ -27,6 +27,8 @@ import com.google.common.collect.Sets;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.chorem.pollen.persistence.entity.FavoriteList;
import org.chorem.pollen.persistence.entity.FavoriteListMember;
import org.chorem.pollen.persistence.entity.FavoriteListMemberTopiaDao;
@@ -53,7 +55,6 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
@@ -69,13 +70,16 @@ import static org.nuiton.i18n.I18n.l;
*/
public class FavoriteListService extends PollenServiceSupport {
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(FavoriteListService.class);
+
public PaginationResultBean<FavoriteListBean> getFavoriteLists(PaginationParameterBean paginationParameter) {
checkIsConnected();
PollenUser user = getConnectedUser();
- PaginationParameter page = getPaginationParameter(paginationParameter);
+ PaginationParameter page = getFavoriteListPaginationParameter(paginationParameter);
PaginationResult<FavoriteList> favoriteLists = getFavoriteListDao().forPollenUserEquals(user).findPage(page);
PaginationResultBean<FavoriteListBean> favoriteListBeans = toPaginationListBean(FavoriteListBean.class, favoriteLists);
@@ -90,7 +94,7 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
FavoriteListBean favoriteListBean = toBean(FavoriteListBean.class, favoriteList);
return favoriteListBean;
@@ -129,6 +133,7 @@ public class FavoriteListService extends PollenServiceSupport {
List<FavoriteList> existingFavoriteLists = getFavoriteLists0(user);
+
ErrorMap errorMap = checkFavoriteList(existingFavoriteLists, favoriteList);
errorMap.failIfNotEmpty();
@@ -149,7 +154,7 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
getFavoriteListDao().delete(favoriteList);
commit();
@@ -158,17 +163,20 @@ public class FavoriteListService extends PollenServiceSupport {
}
- public Set<FavoriteListMemberBean> getFavoriteListMembers(String favoriteListId) {
+ public PaginationResultBean<FavoriteListMemberBean> getFavoriteListMembers(String favoriteListId,
+ PaginationParameterBean paginationParameter) {
checkIsConnected();
checkNotNull(favoriteListId);
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
+
+ PaginationParameter page = getFavoriteListPaginationParameter(paginationParameter);
- Set<FavoriteListMember> members = favoriteList.getMember();
- Set<FavoriteListMemberBean> memberBeans = toBeanSet(FavoriteListMemberBean.class, members);
+ PaginationResult<FavoriteListMember> members = getFavoriteListMemberDao().forFavoriteListEquals(favoriteList).findPage(page);
+ PaginationResultBean<FavoriteListMemberBean> memberBeans = toPaginationListBean(FavoriteListMemberBean.class, members);
return memberBeans;
}
@@ -181,9 +189,9 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
- FavoriteListMember member = getFavoriteListMember(favoriteList, memberId);
+ FavoriteListMember member = getFavoriteListMember0(favoriteList, memberId);
FavoriteListMemberBean memberBean = toBean(FavoriteListMemberBean.class, member);
return memberBean;
@@ -199,9 +207,9 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
- List<FavoriteListMember> existingFavorliteListMembers = new ArrayList<>();
+ List<FavoriteListMember> existingFavorliteListMembers = getFavoriteListMembers0(favoriteList);
ErrorMap errorMap = checkFavoriteListMember(existingFavorliteListMembers, member);
errorMap.failIfNotEmpty();
@@ -224,9 +232,9 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
- List<FavoriteListMember> existingFavorliteListMembers = new ArrayList<>();
+ List<FavoriteListMember> existingFavorliteListMembers = getFavoriteListMembers0(favoriteList);
ErrorMap errorMap = checkFavoriteListMember(existingFavorliteListMembers, member);
errorMap.failIfNotEmpty();
@@ -248,19 +256,17 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
- FavoriteListMember member = getFavoriteListMember(favoriteList, memberId);
+ FavoriteListMember member = getFavoriteListMember0(favoriteList, memberId);
- favoriteList.removeMember(member);
-
- getFavoriteListDao().update(favoriteList);
+ getFavoriteListMemberDao().delete(member);
commit();
}
- public int importFavoriteListMembersFromCsv(String favoriteListId,
- File file) throws FavoriteListImportException {
+ public void importFavoriteListMembersFromCsv(String favoriteListId,
+ File file) throws FavoriteListImportException {
checkIsConnected();
checkNotNull(favoriteListId);
@@ -268,15 +274,17 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
Locale locale = serviceContext.getLocale();
Set<String> usedName = Sets.newHashSet();
Set<String> usedEmail = Sets.newHashSet();
- if (!favoriteList.isMemberEmpty()) {
- for (FavoriteListMember member : favoriteList.getMember()) {
+ List<FavoriteListMember> favoriteListMembers = getFavoriteListMembers0(favoriteList);
+
+ if (CollectionUtils.isNotEmpty(favoriteListMembers)) {
+ for (FavoriteListMember member : favoriteListMembers) {
usedName.add(member.getName());
usedEmail.add(member.getEmail());
}
@@ -335,8 +343,7 @@ public class FavoriteListService extends PollenServiceSupport {
FavoriteListMember member = getFavoriteListMemberDao().newInstance();
member.setName(memberName);
member.setEmail(email);
-
- favoriteList.addMember(member);
+ member.setFavoriteList(favoriteList);
}
reader.close();
@@ -348,15 +355,16 @@ public class FavoriteListService extends PollenServiceSupport {
IOUtils.closeQuietly(reader);
}
- getFavoriteListDao().update(favoriteList);
+ if (log.isInfoEnabled()) {
+ log.info("Imported members: " + result);
+ }
commit();
- return result;
}
- public int importFavoriteListMembersFromLdap(String favoriteListId,
- String ldap) throws FavoriteListImportException {
+ public void importFavoriteListMembersFromLdap(String favoriteListId,
+ String ldap) throws FavoriteListImportException {
checkIsConnected();
checkNotNull(favoriteListId);
@@ -364,15 +372,17 @@ public class FavoriteListService extends PollenServiceSupport {
PollenUser user = getConnectedUser();
- FavoriteList favoriteList = getFavoriteList(user, favoriteListId);
+ FavoriteList favoriteList = getFavoriteList0(user, favoriteListId);
Locale locale = serviceContext.getLocale();
Set<String> usedName = Sets.newHashSet();
Set<String> usedEmail = Sets.newHashSet();
- if (!favoriteList.isMemberEmpty()) {
- for (FavoriteListMember member : favoriteList.getMember()) {
+ List<FavoriteListMember> favoriteListMembers = getFavoriteListMembers0(favoriteList);
+
+ if (CollectionUtils.isNotEmpty(favoriteListMembers)) {
+ for (FavoriteListMember member : favoriteListMembers) {
usedName.add(member.getName());
usedEmail.add(member.getEmail());
}
@@ -429,25 +439,29 @@ public class FavoriteListService extends PollenServiceSupport {
FavoriteListMember member = getFavoriteListMemberDao().newInstance();
member.setName(memberName);
member.setEmail(email);
-
- favoriteList.addMember(member);
+ member.setFavoriteList(favoriteList);
}
}
} catch (NamingException ex) {
throw new FavoriteListImportException("LDAP", ex);
}
- getFavoriteListDao().update(favoriteList);
+ if (log.isInfoEnabled()) {
+ log.info("Imported members: " + result);
+ }
commit();
- return result;
+
}
protected List<FavoriteList> getFavoriteLists0(PollenUser user) {
- return getFavoriteListDao().forPollenUserEquals(user).findAll();
+
+ List<FavoriteList> favoriteLists = getFavoriteListDao().forPollenUserEquals(user).findAll();
+ return favoriteLists;
+
}
- protected FavoriteList getFavoriteList(PollenUser user, String favoriteListId) {
+ protected FavoriteList getFavoriteList0(PollenUser user, String favoriteListId) {
FavoriteList result = getFavoriteListDao().findByTopiaId(favoriteListId);
@@ -461,13 +475,20 @@ public class FavoriteListService extends PollenServiceSupport {
}
- protected FavoriteListMember getFavoriteListMember(FavoriteList favoriteList, String memberId) {
+ protected List<FavoriteListMember> getFavoriteListMembers0(FavoriteList favoriteList) {
+
+ List<FavoriteListMember> members = getFavoriteListMemberDao().forFavoriteListEquals(favoriteList).findAll();
+ return members;
+
+ }
+
+ protected FavoriteListMember getFavoriteListMember0(FavoriteList favoriteList, String memberId) {
FavoriteListMember result = getFavoriteListMemberDao().findByTopiaId(memberId);
- if (!favoriteList.containsMember(result)) {
+ if (!favoriteList.equals(result.getFavoriteList())) {
- throw new InvalidEntityLinkException(FavoriteList.PROPERTY_MEMBER, favoriteList, result);
+ throw new InvalidEntityLinkException(FavoriteListMember.PROPERTY_FAVORITE_LIST, favoriteList, result);
}
@@ -486,7 +507,7 @@ public class FavoriteListService extends PollenServiceSupport {
if (persisted) {
// get existing favorite list
- toSave = getFavoriteList(user, favoriteList.getEntityId());
+ toSave = getFavoriteList0(user, favoriteList.getEntityId());
} else {
@@ -513,19 +534,18 @@ public class FavoriteListService extends PollenServiceSupport {
if (persisted) {
// get existing favorite list
- toSave = getFavoriteListMember(favoriteList, favoriteListMember.getEntityId());
+ toSave = getFavoriteListMember0(favoriteList, favoriteListMember.getEntityId());
} else {
// create a new favorite list
toSave = favoriteListDao.create();
-
- favoriteList.addMember(toSave);
+ toSave.setFavoriteList(favoriteList);
}
toSave.setName(favoriteListMember.getName());
- toSave.setEmail(StringUtils.lowerCase(favoriteListMember.getEmail()));
+ toSave.setEmail(getCleanMail(favoriteListMember.getEmail()));
return toSave;
}
@@ -536,57 +556,42 @@ public class FavoriteListService extends PollenServiceSupport {
String favoriteListName = favoriteList.getName();
- checkNotBlank(errors, "name", favoriteListName, "name can not be empty");
+ boolean nameNotBlank = checkNotBlank(errors, "name", favoriteListName, "name can not be empty");
boolean favoriteListExists = favoriteList.isPersisted();
- Set<String> favoriteListNames = Sets.newHashSet();
-
- if (CollectionUtils.isNotEmpty(existingFavoriteLists)) {
-
- // get all used names
-
- for (FavoriteList favoriteList1 : existingFavoriteLists) {
-
- if (favoriteListExists &&
- favoriteList1.getTopiaId().equals(favoriteList.getEntityId())) {
+ if (nameNotBlank) {
- continue;
+ Set<String> favoriteListNames = Sets.newHashSet();
- }
+ if (CollectionUtils.isNotEmpty(existingFavoriteLists)) {
- favoriteListNames.add(favoriteList1.getName());
+ // get all used names
- }
+ for (FavoriteList favoriteList1 : existingFavoriteLists) {
- }
+ if (favoriteListExists &&
+ favoriteList1.getTopiaId().equals(favoriteList.getEntityId())) {
- boolean nameAdded = favoriteListNames.add(favoriteListName);
- check(errors, "name", nameAdded, "name already used by another favorite list");
+ continue;
- if (CollectionUtils.isNotEmpty(favoriteList.getMember())) {
+ }
- int memberIndex = 0;
+ favoriteListNames.add(favoriteList1.getName());
- List<FavoriteListMember> existingFavoriteListMembers = new ArrayList<>();
+ }
- for (FavoriteListMemberBean existingFavoriteListMember : favoriteList.getMember()) {
- existingFavoriteListMembers.add(existingFavoriteListMember.toEntity());
}
- for (FavoriteListMemberBean member : favoriteList.getMember()) {
-
- ErrorMap favoriteListMemberErrors = checkFavoriteListMember(existingFavoriteListMembers, member);
- favoriteListMemberErrors.copyTo(errors, "favoriteListMember[" + (memberIndex++) + "].");
-
- }
+ boolean nameAdded = favoriteListNames.add(favoriteListName);
+ check(errors, "name", nameAdded, "name already used by another favorite list");
}
return errors;
}
- protected ErrorMap checkFavoriteListMember(List<FavoriteListMember> existingFavoriteListMember, FavoriteListMemberBean favoriteListMember) {
+ protected ErrorMap checkFavoriteListMember(List<FavoriteListMember> existingFavoriteListMembers, FavoriteListMemberBean favoriteListMember) {
ErrorMap errors = new ErrorMap();
@@ -595,14 +600,14 @@ public class FavoriteListService extends PollenServiceSupport {
Set<String> memberNames = Sets.newHashSet();
Set<String> memberEmails = Sets.newHashSet();
- if (CollectionUtils.isNotEmpty(existingFavoriteListMember)) {
+ if (CollectionUtils.isNotEmpty(existingFavoriteListMembers)) {
// get all used names / emails
- for (FavoriteListMember favoriteListMember1 : existingFavoriteListMember) {
+ for (FavoriteListMember favoriteListMember1 : existingFavoriteListMembers) {
if (voterListMemberExists &&
- favoriteListMember1.getTopiaId().equals(favoriteListMember1.getTopiaId())) {
+ favoriteListMember1.getTopiaId().equals(favoriteListMember.getEntityId())) {
continue;
}
@@ -615,8 +620,10 @@ public class FavoriteListService extends PollenServiceSupport {
boolean nameNotBlank = checkNotBlank(errors, "name", favoriteListMember.getName(), "member name can not be empty");
if (nameNotBlank) {
+
boolean added = memberNames.add(favoriteListMember.getName());
check(errors, "name", added, "member name already used");
+
}
String memberEmail = getCleanMail(favoriteListMember.getEmail());
@@ -640,7 +647,7 @@ public class FavoriteListService extends PollenServiceSupport {
}
- protected PaginationParameter getPaginationParameter(PaginationParameterBean paginationParameter) {
+ protected PaginationParameter getFavoriteListPaginationParameter(PaginationParameterBean paginationParameter) {
if (paginationParameter == null) {
@@ -654,4 +661,18 @@ public class FavoriteListService extends PollenServiceSupport {
}
+ protected PaginationParameter getFavoriteListMemberPaginationParameter(PaginationParameterBean paginationParameter) {
+
+ if (paginationParameter == null) {
+
+ int pageSize = getPollenServiceConfig().getDefaultFavoriteListMemberPaginationSize();
+ paginationParameter = PaginationParameterBean.of(0, pageSize);
+
+ }
+
+ PaginationParameter parameter = paginationParameter.toPaginationParameter();
+ return parameter;
+
+ }
+
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FixturesService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FixturesService.java
index 87eab73..dfd53e8 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FixturesService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FixturesService.java
@@ -122,7 +122,7 @@ public class FixturesService extends PollenServiceSupport {
try {
PollBean pollBean = new PollBean();
pollBean.fromEntity(poll);
- PollenEntityRef<Poll> createdPoll = pollService.createPoll(pollBean, choicesBean, null);
+ PollenEntityRef<Poll> createdPoll = pollService.createPoll(pollBean, choicesBean);
poll.setTopiaId(createdPoll.getEntityId());
PollenPrincipal principal = securityService.getPollenPrincipalByPermissionToken(createdPoll.getPermission());
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
index 3212d22..a86ad15 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java
@@ -29,13 +29,11 @@ import org.chorem.pollen.persistence.entity.Choice;
import org.chorem.pollen.persistence.entity.Poll;
import org.chorem.pollen.persistence.entity.PollenPrincipal;
import org.chorem.pollen.persistence.entity.PollenUser;
-import org.chorem.pollen.persistence.entity.VoterList;
import org.chorem.pollen.services.bean.ChoiceBean;
import org.chorem.pollen.services.bean.PaginationParameterBean;
import org.chorem.pollen.services.bean.PaginationResultBean;
import org.chorem.pollen.services.bean.PollBean;
import org.chorem.pollen.services.bean.PollenEntityRef;
-import org.chorem.pollen.services.bean.VoterListBean;
import org.chorem.pollen.services.service.security.PermissionVerb;
import org.nuiton.util.pagination.PaginationParameter;
import org.nuiton.util.pagination.PaginationResult;
@@ -158,17 +156,16 @@ public class PollService extends PollenServiceSupport {
}
- public PollenEntityRef<Poll> createPoll(PollBean poll, List<ChoiceBean> choices, List<VoterListBean> voterLists) throws InvalidFormException {
+ public PollenEntityRef<Poll> createPoll(PollBean poll, List<ChoiceBean> choices) throws InvalidFormException {
checkNotNull(poll);
checkIsNotPersisted(poll);
ErrorMap errorMap = checkPoll(poll);
checkChoices(errorMap, choices);
- checkVoterLists(errorMap, poll, voterLists);
errorMap.failIfNotEmpty();
- Poll savedPoll = savePoll(poll, choices, voterLists);
+ Poll savedPoll = savePoll(poll, choices);
commit();
getNotificationService().onPollCreated(savedPoll);
@@ -188,7 +185,7 @@ public class PollService extends PollenServiceSupport {
ErrorMap errorMap = checkPoll(poll);
errorMap.failIfNotEmpty();
- Poll savedPoll = savePoll(poll, null, null);
+ Poll savedPoll = savePoll(poll, null);
commit();
getNotificationService().onPollEdited(savedPoll);
@@ -254,7 +251,7 @@ public class PollService extends PollenServiceSupport {
}
- protected Poll savePoll(PollBean poll, List<ChoiceBean> choices, List<VoterListBean> voterLists) {
+ protected Poll savePoll(PollBean poll, List<ChoiceBean> choices) {
boolean pollExists = poll.isPersisted();
@@ -330,19 +327,6 @@ public class PollService extends PollenServiceSupport {
}
}
- // -- voter list -- //
-
- if (CollectionUtils.isNotEmpty(voterLists)) {
-
- VoterListService voterListService = getVoterListService();
-
- for (VoterListBean voterList : voterLists) {
-
- voterListService.saveVoterList(toSave, voterList);
-
- }
- }
-
return toSave;
}
@@ -393,44 +377,6 @@ public class PollService extends PollenServiceSupport {
}
}
- protected void checkVoterLists(ErrorMap errorMap, PollBean poll, List<VoterListBean> voterLists) {
-
- boolean voterListsNotEmpty = CollectionUtils.isNotEmpty(voterLists);
-
- if (PollBean.isPollFree(poll)) {
-
- checkEmpty(errorMap, "voterList", voterLists, l(getLocale(), "pollen.error.poll.voterList.mismatch.freePoll"));
-
- } else if (PollBean.isPollRestricted(poll)) {
-
- check(errorMap, "voterList", voterListsNotEmpty && 1 == voterLists.size(), l(getLocale(), "pollen.error.poll.unique.voterList.mandatory.for.restrictedPoll"));
-
- } else if (PollBean.isPollGroup(poll)) {
-
- check(errorMap, "voterList", voterListsNotEmpty, l(getLocale(), "pollen.error.poll.voterList.mandatory.for.groupedPoll"));
-
- }
-
- if (voterListsNotEmpty) {
-
- List<VoterList> existingVoterLists = new ArrayList<>();
-
- for (int i = 0; i < voterLists.size(); i++) {
-
- VoterListBean voterList = voterLists.get(i);
-
- ErrorMap voterListErrors = getVoterListService().checkVoterList(existingVoterLists, voterList);
-
- voterListErrors.copyTo(errorMap, "voterList[" + (i++) + "].");
-
- existingVoterLists.add(voterList.toEntity());
-
- }
-
- }
-
- }
-
protected PaginationParameter getPaginationParameter(PaginationParameterBean paginationParameter) {
if (paginationParameter == null) {
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
index 90fb857..e5ca3cb 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java
@@ -196,7 +196,8 @@ public class VoteCountingService extends PollenServiceSupport {
builder.newGroupVoter(voterList.getTopiaId(),
voterList.getWeight());
- for (VoterListMember voterListMember : voterList.getMember()) {
+ List<VoterListMember> voterListMembers = getVoterListService().getVoterListMembers0(voterList);
+ for (VoterListMember voterListMember : voterListMembers) {
Vote vote = voteByVoterListMember.get(voterListMember);
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
index 4d72516..42f9558 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java
@@ -25,18 +25,18 @@ package org.chorem.pollen.services.service;
import com.google.common.collect.Sets;
import org.apache.commons.collections4.CollectionUtils;
+import org.chorem.pollen.persistence.entity.FavoriteList;
+import org.chorem.pollen.persistence.entity.FavoriteListMember;
import org.chorem.pollen.persistence.entity.Poll;
+import org.chorem.pollen.persistence.entity.PollenUser;
import org.chorem.pollen.persistence.entity.VoterList;
import org.chorem.pollen.persistence.entity.VoterListMember;
import org.chorem.pollen.persistence.entity.VoterListMemberTopiaDao;
import org.chorem.pollen.persistence.entity.VoterListTopiaDao;
-import org.chorem.pollen.services.bean.FavoriteListBean;
-import org.chorem.pollen.services.bean.FavoriteListMemberBean;
import org.chorem.pollen.services.bean.PollenEntityRef;
import org.chorem.pollen.services.bean.VoterListBean;
import org.chorem.pollen.services.bean.VoterListMemberBean;
-import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -57,7 +57,9 @@ public class VoterListService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- FavoriteListBean favoriteList = getFavoriteListService().getFavoriteList(favoriteListId);
+ PollenUser user = getConnectedUser();
+
+ FavoriteList favoriteList = getFavoriteListService().getFavoriteList0(user, favoriteListId);
VoterListTopiaDao dao = getVoterListDao();
VoterList result = dao.create();
@@ -68,13 +70,17 @@ public class VoterListService extends PollenServiceSupport {
VoterListMemberTopiaDao voterListMemberDao =
getVoterListMemberDao();
- for (FavoriteListMemberBean favoriteListMember : favoriteList.getMember()) {
+ List<FavoriteListMember> favoriteListMembers = getFavoriteListService().getFavoriteListMembers0(favoriteList);
+
+ for (FavoriteListMember favoriteListMember : favoriteListMembers) {
- VoterListMember voterListMember = voterListMemberDao.newInstance();
+ VoterListMember voterListMember = voterListMemberDao.create();
voterListMember.setWeight(1d);
voterListMember.setEmail(favoriteListMember.getEmail());
- result.addMember(voterListMember);
+ voterListMember.setVoterList(result);
+
}
+
result.setPoll(poll);
commit();
@@ -105,7 +111,9 @@ public class VoterListService extends PollenServiceSupport {
}
- public PollenEntityRef<VoterList> addVoterList(String pollId, VoterListBean voterList) throws InvalidFormException {
+ public PollenEntityRef<VoterList> addVoterList(String pollId,
+ VoterListBean voterList,
+ List<VoterListMemberBean> members) throws InvalidFormException {
checkNotNull(pollId);
checkNotNull(voterList);
@@ -115,11 +123,25 @@ public class VoterListService extends PollenServiceSupport {
List<VoterList> existingVoterLists = getVoterLists0(poll);
- ErrorMap errorMap = checkVoterList(existingVoterLists, voterList);
- errorMap.failIfNotEmpty();
+ VoterList existingVoterList = getVoterList0(pollId, voterList.getEntityId());
+ List<VoterListMember> existingVoterListMembers = getVoterListMembers0(existingVoterList);
+
+ ErrorMap errorMap = checkVoterList(existingVoterLists, voterList, existingVoterListMembers, members);
+ errorMap.failIfNotEmpty();
VoterList result = saveVoterList(poll, voterList);
+
+ if (CollectionUtils.isNotEmpty(members)) {
+
+ for (VoterListMemberBean member : members) {
+
+ saveVoterListMember(result, member);
+
+ }
+
+ }
+
commit();
//TODO Notify
@@ -139,7 +161,7 @@ public class VoterListService extends PollenServiceSupport {
List<VoterList> existingVoterLists = getVoterLists0(poll);
- ErrorMap errorMap = checkVoterList(existingVoterLists, voterList);
+ ErrorMap errorMap = checkVoterList(existingVoterLists, voterList, null, null);
errorMap.failIfNotEmpty();
VoterList result = saveVoterList(poll, voterList);
@@ -158,7 +180,7 @@ public class VoterListService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- VoterList voterList = getVoterList(poll, voterListId);
+ VoterList voterList = getVoterList0(poll, voterListId);
getVoterListDao().delete(voterList);
commit();
@@ -171,7 +193,7 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- Set<VoterListMember> members = voterList.getMember();
+ List<VoterListMember> members = getVoterListMembers0(voterList);
Set<VoterListMemberBean> memberBeans = toBeanSet(VoterListMemberBean.class, members);
return memberBeans;
@@ -185,7 +207,7 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- VoterListMember member = getVoterListMember(voterList, memberId);
+ VoterListMember member = getVoterListMember0(voterList, memberId);
VoterListMemberBean memberBean = toBean(VoterListMemberBean.class, member);
return memberBean;
@@ -200,7 +222,7 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- List<VoterListMember> existingVoterListMembers = new ArrayList<>(voterList.getMember());
+ List<VoterListMember> existingVoterListMembers = getVoterListMembers0(voterList);
ErrorMap errorMap = checkVoterListMember(existingVoterListMembers, member);
errorMap.failIfNotEmpty();
@@ -222,7 +244,7 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- List<VoterListMember> existingVoterListMembers = new ArrayList<>(voterList.getMember());
+ List<VoterListMember> existingVoterListMembers = getVoterListMembers0(voterList);
ErrorMap errorMap = checkVoterListMember(existingVoterListMembers, member);
errorMap.failIfNotEmpty();
@@ -244,8 +266,8 @@ public class VoterListService extends PollenServiceSupport {
VoterList voterList = getVoterList0(pollId, voterListId);
- VoterListMember member = getVoterListMember(voterList, memberId);
- voterList.removeMember(member);
+ VoterListMember member = getVoterListMember0(voterList, memberId);
+ getVoterListMemberDao().delete(member);
commit();
}
@@ -257,7 +279,7 @@ public class VoterListService extends PollenServiceSupport {
}
- protected VoterList getVoterList(Poll poll, String voterListId) {
+ protected VoterList getVoterList0(Poll poll, String voterListId) {
VoterList result = getVoterListDao().findByTopiaId(voterListId);
@@ -278,18 +300,25 @@ public class VoterListService extends PollenServiceSupport {
Poll poll = getPollService().getPoll0(pollId);
- VoterList result = getVoterList(poll, voterListId);
+ VoterList result = getVoterList0(poll, voterListId);
return result;
}
- protected VoterListMember getVoterListMember(VoterList voterList, String memberId) {
+ protected List<VoterListMember> getVoterListMembers0(VoterList voterList) {
+
+ List<VoterListMember> members = getVoterListMemberDao().forVoterListEquals(voterList).findAll();
+ return members;
+
+ }
+
+ protected VoterListMember getVoterListMember0(VoterList voterList, String memberId) {
VoterListMember result = getVoterListMemberDao().findByTopiaId(memberId);
- if (!voterList.containsMember(result)) {
+ if (!voterList.equals(result.getVoterList())) {
- throw new InvalidEntityLinkException(VoterList.PROPERTY_MEMBER, voterList, result);
+ throw new InvalidEntityLinkException(VoterListMember.PROPERTY_VOTER_LIST, voterList, result);
}
@@ -305,7 +334,7 @@ public class VoterListService extends PollenServiceSupport {
if (voterListExists) {
- toSave = getVoterList(poll, voterList.getEntityId());
+ toSave = getVoterList0(poll, voterList.getEntityId());
} else {
@@ -317,12 +346,6 @@ public class VoterListService extends PollenServiceSupport {
toSave.setName(voterList.getName());
toSave.setWeight(voterList.getWeight());
- for (VoterListMemberBean voterListMember : voterList.getMember()) {
-
- saveVoterListMember(toSave, voterListMember);
-
- }
-
return toSave;
}
@@ -336,12 +359,12 @@ public class VoterListService extends PollenServiceSupport {
if (voterListMemberExists) {
- toSave = getVoterListMember(voterList, voterListMember.getEntityId());
+ toSave = getVoterListMember0(voterList, voterListMember.getEntityId());
} else {
toSave = getVoterListMemberDao().create();
- voterList.addMember(toSave);
+ toSave.setVoterList(voterList);
}
@@ -353,7 +376,7 @@ public class VoterListService extends PollenServiceSupport {
}
- protected ErrorMap checkVoterList(List<VoterList> existingVoterLists, VoterListBean voterList) {
+ protected ErrorMap checkVoterList(List<VoterList> existingVoterLists, VoterListBean voterList, List<VoterListMember> existingVoterListMembers, List<VoterListMemberBean> members) {
ErrorMap errors = new ErrorMap();
@@ -380,7 +403,7 @@ public class VoterListService extends PollenServiceSupport {
checkNotBlank(errors, VoterList.PROPERTY_NAME, voterList.getName(), "voterList name can not be empty");
check(errors, VoterList.PROPERTY_WEIGHT, voterList.getWeight() > 0, "voterList weight must be greater than 0");
- checkNotEmpty(errors, VoterList.PROPERTY_MEMBER, voterList.getMember(), "voterList must contains at least one member");
+ checkNotEmpty(errors, "member", members, "voterList must contains at least one member");
boolean added = voterListNames.add(voterList.getName());
@@ -388,26 +411,9 @@ public class VoterListService extends PollenServiceSupport {
int voterListMemberIndex = 0;
- if (CollectionUtils.isNotEmpty(voterList.getMember())) {
-
- List<VoterListMember> existingVoterListMembers;
-
- if (voterListExists) {
-
- existingVoterListMembers = new ArrayList<>();
- for (VoterListMemberBean existingVoterListMember : voterList.getMember()) {
-
- existingVoterListMembers.add(existingVoterListMember.toEntity());
-
- }
-
- } else {
-
- existingVoterListMembers = new ArrayList<>();
-
- }
+ if (CollectionUtils.isNotEmpty(members)) {
- for (VoterListMemberBean voterListMember : voterList.getMember()) {
+ for (VoterListMemberBean voterListMember : members) {
ErrorMap voterListMemberErrors = checkVoterListMember(existingVoterListMembers, voterListMember);
voterListMemberErrors.copyTo(errors, "member[" + (voterListMemberIndex++) + "].");
diff --git a/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties b/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties
index 241b5fb..13c2595 100644
--- a/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties
+++ b/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties
@@ -1,5 +1,6 @@
pollen.configuration.data.directory=Directory where Pollen stores his data
pollen.configuration.defaultCommentPageSize=
+pollen.configuration.defaultFavoriteListMemberPageSize=
pollen.configuration.defaultFavoriteListPageSize=
pollen.configuration.defaultPollChoiceType=Default choice type used when creating a new poll
pollen.configuration.defaultPollCommentVisibility=Default Poll comment visibility used when creating a new poll
diff --git a/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties b/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties
index 3f8f499..572583b 100644
--- a/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties
+++ b/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties
@@ -1,5 +1,6 @@
pollen.configuration.data.directory=Répertoire de données de l'application
pollen.configuration.defaultCommentPageSize=
+pollen.configuration.defaultFavoriteListMemberPageSize=
pollen.configuration.defaultFavoriteListPageSize=
pollen.configuration.defaultPollChoiceType=Type de choix par défaut lors de la création d'un nouveau sondage
pollen.configuration.defaultPollCommentVisibility=Visibilité des commentaires par défaut lors de la création d'un nouveau sondage
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/FavoriteListServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/FavoriteListServiceTest.java
new file mode 100644
index 0000000..d637524
--- /dev/null
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/FavoriteListServiceTest.java
@@ -0,0 +1,323 @@
+package org.chorem.pollen.services.service;
+
+/*
+ * #%L
+ * Pollen :: Service
+ * %%
+ * Copyright (C) 2009 - 2014 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+import org.chorem.pollen.persistence.entity.FavoriteList;
+import org.chorem.pollen.persistence.entity.FavoriteListMember;
+import org.chorem.pollen.persistence.entity.PollenUser;
+import org.chorem.pollen.services.AbstractPollenServiceTest;
+import org.chorem.pollen.services.bean.FavoriteListBean;
+import org.chorem.pollen.services.bean.FavoriteListMemberBean;
+import org.chorem.pollen.services.bean.PollenEntityRef;
+import org.chorem.pollen.services.service.security.PollenAuthenticationException;
+import org.chorem.pollen.services.service.security.PollenInvalidSessionTokenException;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.util.Date;
+
+/**
+ * Created on 5/29/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.0
+ */
+public class FavoriteListServiceTest extends AbstractPollenServiceTest {
+
+
+ protected PollenUserService userService;
+
+ protected FavoriteListService service;
+
+ protected PollenUser user;
+
+ @Before
+ public void setUp() throws ParseException {
+
+ loadFixtures("fixtures");
+
+ userService = newService(PollenUserService.class);
+ service = newService(FavoriteListService.class);
+
+ getServiceContext().setDate(new Date(1363948427576l));
+
+ user = application.fixture("user_jean");
+ }
+
+ @Test
+ public void createFavoriteList() throws PollenInvalidSessionTokenException, PollenAuthenticationException, InvalidFormException {
+
+ login("jean(a)pollen.fake", "fake");
+
+ // create a first list
+
+ FavoriteListBean favoriteListBean1 = new FavoriteListBean();
+
+ try {
+ service.createFavoriteList(favoriteListBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // no name
+ assertErrorKeyFound(e, "name");
+ }
+
+ favoriteListBean1.setName("list1");
+ PollenEntityRef<FavoriteList> savedList1 = service.createFavoriteList(favoriteListBean1);
+ Assert.assertNotNull(savedList1);
+ Assert.assertNotNull(savedList1.getEntityId());
+
+ // create a first member
+
+ FavoriteListMemberBean memberBean1 = new FavoriteListMemberBean();
+ try {
+ service.addFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // no name
+ // no email
+ assertErrorKeyFound(e, "name", "email");
+ }
+
+ memberBean1.setName("member1");
+ try {
+ service.addFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // no email
+ assertErrorKeyFound(e, "email");
+ }
+
+ memberBean1.setEmail("member1@");
+ try {
+ service.addFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // invalid email
+ assertErrorKeyFound(e, "email");
+ }
+
+ memberBean1.setEmail("member1(a)pollen.org");
+ PollenEntityRef<FavoriteListMember> savedMmember1 = service.addFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.assertNotNull(savedMmember1);
+ Assert.assertNotNull(savedMmember1.getEntityId());
+
+ // create a second member
+
+ FavoriteListMemberBean memberBean2 = new FavoriteListMemberBean();
+
+ memberBean2.setName("member1");
+ memberBean2.setEmail("member1(a)pollen.org");
+ try {
+ service.addFavoriteListMember(savedList1.getEntityId(), memberBean2);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // duplicated name
+ // duplicated email
+ assertErrorKeyFound(e, "name", "email");
+ }
+
+ memberBean2.setName("member2");
+ try {
+ service.addFavoriteListMember(savedList1.getEntityId(), memberBean2);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // duplicated email
+ assertErrorKeyFound(e, "email");
+ }
+
+ memberBean2.setEmail("member2(a)pollen.org");
+
+ PollenEntityRef<FavoriteListMember> savedMmember2 = service.addFavoriteListMember(savedList1.getEntityId(), memberBean2);
+ Assert.assertNotNull(savedMmember2);
+ Assert.assertNotNull(savedMmember2.getEntityId());
+
+
+ // create a second list
+
+ FavoriteListBean favoriteListBean2 = new FavoriteListBean();
+ favoriteListBean2.setName("list1");
+ try {
+ service.createFavoriteList(favoriteListBean2);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // same name
+ assertErrorKeyFound(e, "name");
+ }
+
+ favoriteListBean2.setName("list2");
+ PollenEntityRef<FavoriteList> savedList2 = service.createFavoriteList(favoriteListBean2);
+ Assert.assertNotNull(savedList2);
+ Assert.assertNotNull(savedList2.getEntityId());
+
+ }
+
+ @Test
+ public void editFavoriteList() throws PollenInvalidSessionTokenException, PollenAuthenticationException, InvalidFormException {
+
+ login("jean(a)pollen.fake", "fake");
+
+ // create a first list
+
+ FavoriteListBean favoriteListBean1 = new FavoriteListBean();
+
+ favoriteListBean1.setName("list1");
+ PollenEntityRef<FavoriteList> savedList1 = service.createFavoriteList(favoriteListBean1);
+ Assert.assertNotNull(savedList1);
+ Assert.assertNotNull(savedList1.getEntityId());
+
+ // create a first member
+
+ FavoriteListMemberBean memberBean1 = new FavoriteListMemberBean();
+ memberBean1.setName("member1");
+ memberBean1.setEmail("member1(a)pollen.org");
+ PollenEntityRef<FavoriteListMember> savedMmember1 = service.addFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.assertNotNull(savedMmember1);
+ Assert.assertNotNull(savedMmember1.getEntityId());
+
+ // create a second member
+
+ FavoriteListMemberBean memberBean2 = new FavoriteListMemberBean();
+ memberBean2.setName("member2");
+ memberBean2.setEmail("member2(a)pollen.org");
+ PollenEntityRef<FavoriteListMember> savedMmember2 = service.addFavoriteListMember(savedList1.getEntityId(), memberBean2);
+ Assert.assertNotNull(savedMmember2);
+ Assert.assertNotNull(savedMmember2.getEntityId());
+
+ // create a second list
+
+ FavoriteListBean favoriteListBean2 = new FavoriteListBean();
+ favoriteListBean2.setName("list2");
+ PollenEntityRef<FavoriteList> savedList2 = service.createFavoriteList(favoriteListBean2);
+ Assert.assertNotNull(savedList2);
+ Assert.assertNotNull(savedList2.getEntityId());
+
+ // edit first list
+
+ try {
+ service.editFavoriteList(favoriteListBean1);
+ Assert.fail();
+ } catch (IllegalStateException e) {
+ // Should having id
+ Assert.assertTrue(true);
+ }
+
+ favoriteListBean1.setEntityId(savedList1.getEntityId());
+ service.editFavoriteList(favoriteListBean1);
+
+ favoriteListBean1.setName("list2");
+ try {
+ service.editFavoriteList(favoriteListBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // duplicated name
+ assertErrorKeyFound(e, "name");
+ }
+
+ favoriteListBean1.setName("list3");
+ service.editFavoriteList(favoriteListBean1);
+
+ }
+
+ @Test
+ public void editFavoriteListMember() throws PollenInvalidSessionTokenException, PollenAuthenticationException, InvalidFormException {
+
+ login("jean(a)pollen.fake", "fake");
+
+ // create a first list
+
+ FavoriteListBean favoriteListBean1 = new FavoriteListBean();
+
+ favoriteListBean1.setName("list1");
+ PollenEntityRef<FavoriteList> savedList1 = service.createFavoriteList(favoriteListBean1);
+ Assert.assertNotNull(savedList1);
+ Assert.assertNotNull(savedList1.getEntityId());
+
+ // create a first member
+
+ FavoriteListMemberBean memberBean1 = new FavoriteListMemberBean();
+ memberBean1.setName("member1");
+ memberBean1.setEmail("member1(a)pollen.org");
+ PollenEntityRef<FavoriteListMember> savedMmember1 = service.addFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.assertNotNull(savedMmember1);
+ Assert.assertNotNull(savedMmember1.getEntityId());
+
+ // create a second member
+
+ FavoriteListMemberBean memberBean2 = new FavoriteListMemberBean();
+ memberBean2.setName("member2");
+ memberBean2.setEmail("member2(a)pollen.org");
+ PollenEntityRef<FavoriteListMember> savedMmember2 = service.addFavoriteListMember(savedList1.getEntityId(), memberBean2);
+ Assert.assertNotNull(savedMmember2);
+ Assert.assertNotNull(savedMmember2.getEntityId());
+
+ // edit first member
+
+ try {
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (IllegalStateException e) {
+ // Should having id
+ Assert.assertTrue(true);
+ }
+
+ memberBean1.setEntityId(savedMmember1.getEntityId());
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+
+ memberBean1.setName("member2");
+ memberBean1.setEmail("member2[pollen.org");
+ try {
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // duplicated name
+ // invalid email
+ assertErrorKeyFound(e, "name", "email");
+ }
+
+ memberBean1.setName("member3");
+ try {
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // invalid email
+ assertErrorKeyFound(e, "email");
+ }
+
+ memberBean1.setEmail("member2(a)pollen.org");
+ try {
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // duplicated email
+ assertErrorKeyFound(e, "email");
+ }
+
+ memberBean1.setEmail("member1(a)pollen.org");
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+
+ memberBean1.setEmail("member3(a)pollen.org");
+ service.editFavoriteListMember(savedList1.getEntityId(), memberBean1);
+
+ }
+}
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java
index 6679ee8..ce07c29 100644
--- a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java
@@ -26,14 +26,10 @@ package org.chorem.pollen.services.service;
import org.chorem.pollen.persistence.entity.ChoiceType;
import org.chorem.pollen.persistence.entity.Poll;
import org.chorem.pollen.persistence.entity.PollType;
-import org.chorem.pollen.persistence.entity.PollenPrincipal;
import org.chorem.pollen.services.AbstractPollenServiceTest;
import org.chorem.pollen.services.bean.ChoiceBean;
import org.chorem.pollen.services.bean.PollBean;
import org.chorem.pollen.services.bean.PollenEntityRef;
-import org.chorem.pollen.services.bean.VoterListBean;
-import org.chorem.pollen.services.bean.VoterListMemberBean;
-import org.chorem.pollen.services.service.security.PollenInvalidPermissionException;
import org.chorem.pollen.services.service.security.SecurityService;
import org.chorem.pollen.services.test.FakePollenSecurityContext;
import org.junit.Assert;
@@ -99,7 +95,7 @@ public class PollServiceTest extends AbstractPollenServiceTest {
choice2.setDescription("Choice B");
choices.add(choice2);
- PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices, null);
+ PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices);
Assert.assertNotNull(createdPoll);
String createdPollId = createdPoll.getEntityId();
Assert.assertNotNull(createdPollId);
@@ -145,7 +141,7 @@ public class PollServiceTest extends AbstractPollenServiceTest {
poll.setPollType(PollType.FREE);
try {
- service.createPoll(poll, null, null);
+ service.createPoll(poll, null);
Assert.fail();
} catch (InvalidFormException e) {
// missing title
@@ -160,7 +156,7 @@ public class PollServiceTest extends AbstractPollenServiceTest {
choices.add(choice1);
try {
- service.createPoll(poll, choices, null);
+ service.createPoll(poll, choices);
Assert.fail();
} catch (InvalidFormException e) {
// missing choice type
@@ -169,7 +165,7 @@ public class PollServiceTest extends AbstractPollenServiceTest {
choice1.setChoiceType(ChoiceType.TEXT);
try {
- service.createPoll(poll, choices, null);
+ service.createPoll(poll, choices);
Assert.fail();
} catch (InvalidFormException e) {
// missing choice name
@@ -187,7 +183,7 @@ public class PollServiceTest extends AbstractPollenServiceTest {
choices.add(choice2);
try {
- service.createPoll(poll, choices, null);
+ service.createPoll(poll, choices);
Assert.fail();
} catch (InvalidFormException e) {
// duplicated choice name
@@ -197,7 +193,7 @@ public class PollServiceTest extends AbstractPollenServiceTest {
choice2.setName("B");
- PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices, null);
+ PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices);
Assert.assertNotNull(createdPoll);
String createdPollId = createdPoll.getEntityId();
Assert.assertNotNull(createdPollId);
@@ -243,316 +239,296 @@ public class PollServiceTest extends AbstractPollenServiceTest {
}
-
- @Test
- public void createSafeRestrictedPoll() throws InvalidFormException {
-
- PollBean poll = service.getNewPoll();
-
- poll.setPollType(PollType.GROUP);
- poll.setTitle("poll1");
-
- List<ChoiceBean> choices = new ArrayList<>();
-
- ChoiceBean choice1 = new ChoiceBean();
- choices.add(choice1);
- choice1.setChoiceType(ChoiceType.TEXT);
- choice1.setName("A");
- choice1.setDescription("Choice A");
-
-
- ChoiceBean choice2 = new ChoiceBean();
- choice2.setChoiceType(ChoiceType.TEXT);
- choice2.setName("B");
- choice2.setDescription("Choice B");
- choices.add(choice2);
-
- List<VoterListBean> voterLists = new ArrayList<>();
-
- // add voter list
- VoterListBean voterList = new VoterListBean();
-
- voterLists.add(voterList);
- voterList.setName("voterList1");
- voterList.setWeight(1);
-
- VoterListMemberBean voterListMember1 = new VoterListMemberBean();
- voterList.addMember(voterListMember1);
-
- voterListMember1.setName("voter1");
- voterListMember1.setWeight(0.3);
- voterListMember1.setEmail("voter1(a)pollen.org");
-
- VoterListMemberBean voterListMember2 = new VoterListMemberBean();
- voterList.addMember(voterListMember2);
- voterListMember2.setName("voter2");
- voterListMember2.setEmail("voter2(a)pollen.org");
- voterListMember2.setWeight(0.7);
-
- PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices, voterLists);
- Assert.assertNotNull(createdPoll);
- String createdPollId = createdPoll.getEntityId();
- Assert.assertNotNull(createdPollId);
-
- try {
- service.getPoll(createdPollId);
- Assert.fail();
- } catch (PollenInvalidPermissionException e) {
- Assert.assertTrue(true);
- }
-
- FakePollenSecurityContext securityContext = serviceContext.getSecurityContext();
-
- PollenPrincipal principal = securityService.getPollenPrincipalByPermissionToken(createdPoll.getPermission());
- securityContext.setMainPrincipal(principal);
-
- PollBean reloadedPoll = service.getPoll(createdPollId);
-// Assert.assertEquals(createdPoll, reloadedPoll);
-
- Assert.assertEquals(getServiceContext().getNow(), reloadedPoll.getBeginDate());
-
-// Assert.assertNotNull(createdPoll.getCreator());
-// Assert.assertNotNull(createdPoll.getCreator().getTopiaId());
-// Assert.assertNull(createdPoll.getCreator().getName());
-// Assert.assertNull(createdPoll.getCreator().getEmail());
-
- List<ChoiceBean> createdChoices = choiceService.getChoices(createdPollId);
-
- Assert.assertNotNull(createdChoices);
- Assert.assertEquals(2, createdChoices.size());
-
- ChoiceBean createdChoice1 = createdChoices.get(0);
- Assert.assertNotNull(createdChoice1);
- Assert.assertNotNull(createdChoice1.getEntityId());
-
- ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPollId, createdChoice1.getEntityId());
- Assert.assertEquals(createdChoice1, reloadedChoice1);
-
- Assert.assertEquals(choice1.getName(), createdChoice1.getName());
- Assert.assertEquals(choice1.getDescription(), createdChoice1.getDescription());
-// Assert.assertEquals(createdPoll.getCreator(), createdChoice1.getCreator());
-
- ChoiceBean createdChoice2 = createdChoices.get(1);
- Assert.assertNotNull(createdChoice2);
- Assert.assertNotNull(createdChoice2.getEntityId());
-
- ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPollId, createdChoice2.getEntityId());
- Assert.assertEquals(createdChoice2, reloadedChoice2);
-
- Assert.assertEquals(choice2.getName(), createdChoice2.getName());
- Assert.assertEquals(choice2.getDescription(), createdChoice2.getDescription());
-// Assert.assertEquals(createdPoll.getCreator(), createdChoice2.getCreator());
-
- List<VoterListBean> createdVoterLists = voterListService.getVoterLists(createdPollId);
-
- Assert.assertNotNull(createdVoterLists);
- Assert.assertEquals(1, createdVoterLists.size());
- VoterListBean createdVoterList = createdVoterLists.get(0);
- Assert.assertNotNull(createdVoterList);
- Assert.assertNotNull(createdVoterList.getEntityId());
-
- VoterListBean reloadedVoterList = voterListService.getVoterList(createdPollId, createdVoterList.getEntityId());
- Assert.assertEquals(createdVoterList, reloadedVoterList);
-
- Assert.assertEquals(voterList.getName(), createdVoterList.getName());
- Assert.assertEquals(voterList.getWeight(), createdVoterList.getWeight(), 0);
-
- Assert.assertNotNull(createdVoterList.getMember());
- Assert.assertEquals(2, createdVoterList.getMember().size());
-
- }
-
- @Test
- public void testCreateRestrictedPoll() throws InvalidFormException {
-
- PollBean poll = service.getNewPoll();
- poll.setPollType(PollType.RESTRICTED);
-
- poll.setTitle("poll1");
-
- List<ChoiceBean> choices = new ArrayList<>();
-
- ChoiceBean choice1 = new ChoiceBean();
- choice1.setChoiceType(ChoiceType.TEXT);
- choice1.setName("A");
- choice1.setDescription("Choice A");
-
- choices.add(choice1);
-
- ChoiceBean choice2 = new ChoiceBean();
- choice2.setChoiceType(ChoiceType.TEXT);
- choice2.setName("B");
- choice2.setDescription("Choice B");
-
- choices.add(choice2);
-
- try {
- service.createPoll(poll, choices, null);
- Assert.fail();
- } catch (InvalidFormException e) {
- // missing voterList
- assertErrorKeyFound(e, "voterList");
- }
-
- List<VoterListBean> voterLists = new ArrayList<>();
-
- // add voter list
- VoterListBean voterList = new VoterListBean();
-
- voterLists.add(voterList);
-
- try {
- service.createPoll(poll, choices, voterLists);
- Assert.fail();
- } catch (InvalidFormException e) {
- // missing name
- // missing weight
- // missing voterListMember
- assertErrorKeyFound(e, "voterList[0].name", "voterList[0].weight", "voterList[0].member");
- }
-
- voterList.setName("voterList1");
- voterList.setWeight(1);
-
- VoterListMemberBean voterListMember1 = new VoterListMemberBean();
- voterList.addMember(voterListMember1);
-
- try {
- service.createPoll(poll, choices, voterLists);
- Assert.fail();
- } catch (InvalidFormException e) {
- // missing member name
- // missing member email
- assertErrorKeyFound(e, "voterList[0].member[0].name", "voterList[0].member[0].email", "voterList[0].member[0].weight");
- }
-
- voterListMember1.setName("voter1");
- voterListMember1.setWeight(0.3);
- voterListMember1.setEmail("voter1_pollen.org");
-
- try {
- service.createPoll(poll, choices, voterLists);
- Assert.fail();
- } catch (InvalidFormException e) {
- // invalid member email
- assertErrorKeyFound(e, "voterList[0].member[0].email");
- }
-
- voterListMember1.setEmail("voter1(a)pollen.org");
-
- VoterListMemberBean voterListMember2 = new VoterListMemberBean();
- voterListMember2.setName("voter1");
- voterListMember2.setWeight(0.7);
- voterListMember2.setEmail("voter1(a)pollen.org");
- voterList.addMember(voterListMember2);
-
- try {
- service.createPoll(poll, choices, voterLists);
- Assert.fail();
- } catch (InvalidFormException e) {
- // same name
- // same email
- assertErrorKeyFound(e, "voterList[0].member[1].name", "voterList[0].member[1].email");
- }
-
- voterListMember2.setName("voter2");
- voterListMember2.setEmail("voter2(a)pollen.org");
-
- PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices, voterLists);
- Assert.assertNotNull(createdPoll);
- String createdPollId = createdPoll.getEntityId();
- Assert.assertNotNull(createdPollId);
-
- try {
- service.getPoll(createdPollId);
- Assert.fail();
- } catch (PollenInvalidPermissionException e) {
- Assert.assertTrue(true);
- }
-
- PollenPrincipal principal = securityService.getPollenPrincipalByPermissionToken(createdPoll.getPermission());
- FakePollenSecurityContext securityContext = (FakePollenSecurityContext) serviceContext.getSecurityContext();
- securityContext.setMainPrincipal(principal);
-
- PollBean reloadedPoll = service.getPoll(createdPollId);
-// Assert.assertEquals(createdPoll, reloadedPoll);
-
- Assert.assertEquals(getServiceContext().getNow(), reloadedPoll.getBeginDate());
-
-// Assert.assertNotNull(createdPoll.getCreator());
-// Assert.assertNotNull(createdPoll.getCreator().getTopiaId());
-// Assert.assertNull(createdPoll.getCreator().getName());
-// Assert.assertNull(createdPoll.getCreator().getEmail());
-// Assert.assertNull(createdPoll.getComment());
-// Assert.assertNull(createdPoll.getVote());
-
- List<ChoiceBean> createdChoices = choiceService.getChoices(createdPollId);
-
- Assert.assertNotNull(createdChoices);
- Assert.assertEquals(2, createdChoices.size());
-
- ChoiceBean createdChoice1 = createdChoices.get(0);
- Assert.assertNotNull(createdChoice1);
- Assert.assertNotNull(createdChoice1.getEntityId());
-
- ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPollId, createdChoice1.getEntityId());
- Assert.assertEquals(createdChoice1, reloadedChoice1);
-
- Assert.assertEquals(choice1.getName(), createdChoice1.getName());
- Assert.assertEquals(choice1.getDescription(), createdChoice1.getDescription());
-// Assert.assertEquals(createdPoll.getCreator(), createdChoice1.getCreator());
-
- ChoiceBean createdChoice2 = createdChoices.get(1);
- Assert.assertNotNull(createdChoice2);
- Assert.assertNotNull(createdChoice2.getEntityId());
-
- ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPollId, createdChoice2.getEntityId());
- Assert.assertEquals(createdChoice2, reloadedChoice2);
-
- Assert.assertEquals(choice2.getName(), createdChoice2.getName());
- Assert.assertEquals(choice2.getDescription(), createdChoice2.getDescription());
-// Assert.assertEquals(createdPoll.getCreator(), createdChoice2.getCreator());
-
- List<VoterListBean> createdVoterLists = voterListService.getVoterLists(createdPollId);
-
- Assert.assertNotNull(createdVoterLists);
- Assert.assertEquals(1, createdVoterLists.size());
- VoterListBean createdVoterList = createdVoterLists.get(0);
- Assert.assertNotNull(createdVoterList);
- Assert.assertNotNull(createdVoterList.getEntityId());
-
- VoterListBean reloadedVoterList = voterListService.getVoterList(createdPollId, createdVoterList.getEntityId());
- Assert.assertEquals(createdVoterList, reloadedVoterList);
-
- Assert.assertEquals(voterList.getName(), createdVoterList.getName());
- Assert.assertEquals(voterList.getWeight(), createdVoterList.getWeight(), 0);
-
- Assert.assertNotNull(createdVoterList.getMember());
- Assert.assertEquals(2, createdVoterList.getMember().size());
-
-// VoterListMember createdVoterListMember1 = Iterables.get(createdVoterList.getMember(), 0);
+ //FIXME Review how to validate restricted poll
+// @Test
+// public void createSafeRestrictedPoll() throws InvalidFormException {
+//
+// PollBean poll = service.getNewPoll();
+//
+// poll.setPollType(PollType.GROUP);
+// poll.setTitle("poll1");
+//
+// List<ChoiceBean> choices = new ArrayList<>();
//
-// Assert.assertNotNull(createdVoterListMember1);
-// Assert.assertNotNull(createdVoterListMember1.getTopiaId());
-// VoterListMember reloadedVoterListMember1 = voterListService.getMember(createdPoll.getTopiaId(), createdVoterList.getTopiaId(), createdVoterListMember1.getTopiaId());
-// Assert.assertEquals(createdVoterListMember1, reloadedVoterListMember1);
+// ChoiceBean choice1 = new ChoiceBean();
+// choices.add(choice1);
+// choice1.setChoiceType(ChoiceType.TEXT);
+// choice1.setName("A");
+// choice1.setDescription("Choice A");
//
-// Assert.assertEquals(reloadedVoterListMember1.getName(), createdVoterListMember1.getName());
-// Assert.assertEquals(reloadedVoterListMember1.getEmail(), createdVoterListMember1.getEmail());
-// Assert.assertEquals(reloadedVoterListMember1.getWeight(), createdVoterListMember1.getWeight(), 0);
//
-// VoterListMember createdVoterListMember2 = Iterables.get(createdVoterList.getMember(), 1);
+// ChoiceBean choice2 = new ChoiceBean();
+// choice2.setChoiceType(ChoiceType.TEXT);
+// choice2.setName("B");
+// choice2.setDescription("Choice B");
+// choices.add(choice2);
//
-// Assert.assertNotNull(createdVoterListMember2);
-// Assert.assertNotNull(createdVoterListMember2.getTopiaId());
+// List<VoterListBean> voterLists = new ArrayList<>();
//
-// VoterListMember reloadedVoterListMember2 = voterListService.getMember(createdPoll.getTopiaId(), createdVoterList.getTopiaId(), createdVoterListMember2.getTopiaId());
-// Assert.assertEquals(createdVoterListMember2, reloadedVoterListMember2);
+// PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices);
+// Assert.assertNotNull(createdPoll);
+// String createdPollId = createdPoll.getEntityId();
+// Assert.assertNotNull(createdPollId);
//
-// Assert.assertEquals(reloadedVoterListMember2.getName(), createdVoterListMember2.getName());
-// Assert.assertEquals(reloadedVoterListMember2.getEmail(), createdVoterListMember2.getEmail());
-// Assert.assertEquals(reloadedVoterListMember2.getWeight(), createdVoterListMember2.getWeight(), 0);
+// try {
+// service.getPoll(createdPollId);
+// Assert.fail();
+// } catch (PollenInvalidPermissionException e) {
+// Assert.assertTrue(true);
+// }
+//
+// FakePollenSecurityContext securityContext = serviceContext.getSecurityContext();
+//
+// PollenPrincipal principal = securityService.getPollenPrincipalByPermissionToken(createdPoll.getPermission());
+// securityContext.setMainPrincipal(principal);
+//
+// PollBean reloadedPoll = service.getPoll(createdPollId);
+//// Assert.assertEquals(createdPoll, reloadedPoll);
+//
+// Assert.assertEquals(getServiceContext().getNow(), reloadedPoll.getBeginDate());
+//
+//// Assert.assertNotNull(createdPoll.getCreator());
+//// Assert.assertNotNull(createdPoll.getCreator().getTopiaId());
+//// Assert.assertNull(createdPoll.getCreator().getName());
+//// Assert.assertNull(createdPoll.getCreator().getEmail());
+//
+// List<ChoiceBean> createdChoices = choiceService.getChoices(createdPollId);
+//
+// Assert.assertNotNull(createdChoices);
+// Assert.assertEquals(2, createdChoices.size());
+//
+// ChoiceBean createdChoice1 = createdChoices.get(0);
+// Assert.assertNotNull(createdChoice1);
+// Assert.assertNotNull(createdChoice1.getEntityId());
+//
+// ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPollId, createdChoice1.getEntityId());
+// Assert.assertEquals(createdChoice1, reloadedChoice1);
+//
+// Assert.assertEquals(choice1.getName(), createdChoice1.getName());
+// Assert.assertEquals(choice1.getDescription(), createdChoice1.getDescription());
+//// Assert.assertEquals(createdPoll.getCreator(), createdChoice1.getCreator());
+//
+// ChoiceBean createdChoice2 = createdChoices.get(1);
+// Assert.assertNotNull(createdChoice2);
+// Assert.assertNotNull(createdChoice2.getEntityId());
+//
+// ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPollId, createdChoice2.getEntityId());
+// Assert.assertEquals(createdChoice2, reloadedChoice2);
+//
+// Assert.assertEquals(choice2.getName(), createdChoice2.getName());
+// Assert.assertEquals(choice2.getDescription(), createdChoice2.getDescription());
+//// Assert.assertEquals(createdPoll.getCreator(), createdChoice2.getCreator());
+//
+// List<VoterListBean> createdVoterLists = voterListService.getVoterLists(createdPollId);
+//
+// Assert.assertNotNull(createdVoterLists);
+// Assert.assertEquals(1, createdVoterLists.size());
+// VoterListBean createdVoterList = createdVoterLists.get(0);
+// Assert.assertNotNull(createdVoterList);
+// Assert.assertNotNull(createdVoterList.getEntityId());
+//
+// VoterListBean reloadedVoterList = voterListService.getVoterList(createdPollId, createdVoterList.getEntityId());
+// Assert.assertEquals(createdVoterList, reloadedVoterList);
+//
+// Assert.assertEquals(voterList.getName(), createdVoterList.getName());
+// Assert.assertEquals(voterList.getWeight(), createdVoterList.getWeight(), 0);
+//
+// Assert.assertNotNull(createdVoterList.getMember());
+// Assert.assertEquals(2, createdVoterList.getMember().size());
+//
+// }
- }
+// @Test
+// public void testCreateRestrictedPoll() throws InvalidFormException {
+//
+// PollBean poll = service.getNewPoll();
+// poll.setPollType(PollType.RESTRICTED);
+//
+// poll.setTitle("poll1");
+//
+// List<ChoiceBean> choices = new ArrayList<>();
+//
+// ChoiceBean choice1 = new ChoiceBean();
+// choice1.setChoiceType(ChoiceType.TEXT);
+// choice1.setName("A");
+// choice1.setDescription("Choice A");
+//
+// choices.add(choice1);
+//
+// ChoiceBean choice2 = new ChoiceBean();
+// choice2.setChoiceType(ChoiceType.TEXT);
+// choice2.setName("B");
+// choice2.setDescription("Choice B");
+//
+// choices.add(choice2);
+//
+// try {
+// service.createPoll(poll, choices);
+// Assert.fail();
+// } catch (InvalidFormException e) {
+// // missing voterList
+// assertErrorKeyFound(e, "voterList");
+// }
+//
+// List<VoterListBean> voterLists = new ArrayList<>();
+//
+// // add voter list
+// VoterListBean voterList = new VoterListBean();
+//
+// voterLists.add(voterList);
+//
+// try {
+// service.createPoll(poll, choices);
+// Assert.fail();
+// } catch (InvalidFormException e) {
+// // missing name
+// // missing weight
+// // missing voterListMember
+// assertErrorKeyFound(e, "voterList[0].name", "voterList[0].weight", "voterList[0].member");
+// }
+//
+// voterList.setName("voterList1");
+// voterList.setWeight(1);
+//
+// VoterListMemberBean voterListMember1 = new VoterListMemberBean();
+// voterList.addMember(voterListMember1);
+//
+// try {
+// service.createPoll(poll, choices);
+// Assert.fail();
+// } catch (InvalidFormException e) {
+// // missing member name
+// // missing member email
+// assertErrorKeyFound(e, "voterList[0].member[0].name", "voterList[0].member[0].email", "voterList[0].member[0].weight");
+// }
+//
+// voterListMember1.setName("voter1");
+// voterListMember1.setWeight(0.3);
+// voterListMember1.setEmail("voter1_pollen.org");
+//
+// try {
+// service.createPoll(poll, choices);
+// Assert.fail();
+// } catch (InvalidFormException e) {
+// // invalid member email
+// assertErrorKeyFound(e, "voterList[0].member[0].email");
+// }
+//
+// voterListMember1.setEmail("voter1(a)pollen.org");
+//
+// VoterListMemberBean voterListMember2 = new VoterListMemberBean();
+// voterListMember2.setName("voter1");
+// voterListMember2.setWeight(0.7);
+// voterListMember2.setEmail("voter1(a)pollen.org");
+// voterList.addMember(voterListMember2);
+//
+// try {
+// service.createPoll(poll, choices);
+// Assert.fail();
+// } catch (InvalidFormException e) {
+// // same name
+// // same email
+// assertErrorKeyFound(e, "voterList[0].member[1].name", "voterList[0].member[1].email");
+// }
+//
+// voterListMember2.setName("voter2");
+// voterListMember2.setEmail("voter2(a)pollen.org");
+//
+// PollenEntityRef<Poll> createdPoll = service.createPoll(poll, choices);
+// Assert.assertNotNull(createdPoll);
+// String createdPollId = createdPoll.getEntityId();
+// Assert.assertNotNull(createdPollId);
+//
+// try {
+// service.getPoll(createdPollId);
+// Assert.fail();
+// } catch (PollenInvalidPermissionException e) {
+// Assert.assertTrue(true);
+// }
+//
+// PollenPrincipal principal = securityService.getPollenPrincipalByPermissionToken(createdPoll.getPermission());
+// FakePollenSecurityContext securityContext = (FakePollenSecurityContext) serviceContext.getSecurityContext();
+// securityContext.setMainPrincipal(principal);
+//
+// PollBean reloadedPoll = service.getPoll(createdPollId);
+//// Assert.assertEquals(createdPoll, reloadedPoll);
+//
+// Assert.assertEquals(getServiceContext().getNow(), reloadedPoll.getBeginDate());
+//
+//// Assert.assertNotNull(createdPoll.getCreator());
+//// Assert.assertNotNull(createdPoll.getCreator().getTopiaId());
+//// Assert.assertNull(createdPoll.getCreator().getName());
+//// Assert.assertNull(createdPoll.getCreator().getEmail());
+//// Assert.assertNull(createdPoll.getComment());
+//// Assert.assertNull(createdPoll.getVote());
+//
+// List<ChoiceBean> createdChoices = choiceService.getChoices(createdPollId);
+//
+// Assert.assertNotNull(createdChoices);
+// Assert.assertEquals(2, createdChoices.size());
+//
+// ChoiceBean createdChoice1 = createdChoices.get(0);
+// Assert.assertNotNull(createdChoice1);
+// Assert.assertNotNull(createdChoice1.getEntityId());
+//
+// ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPollId, createdChoice1.getEntityId());
+// Assert.assertEquals(createdChoice1, reloadedChoice1);
+//
+// Assert.assertEquals(choice1.getName(), createdChoice1.getName());
+// Assert.assertEquals(choice1.getDescription(), createdChoice1.getDescription());
+//// Assert.assertEquals(createdPoll.getCreator(), createdChoice1.getCreator());
+//
+// ChoiceBean createdChoice2 = createdChoices.get(1);
+// Assert.assertNotNull(createdChoice2);
+// Assert.assertNotNull(createdChoice2.getEntityId());
+//
+// ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPollId, createdChoice2.getEntityId());
+// Assert.assertEquals(createdChoice2, reloadedChoice2);
+//
+// Assert.assertEquals(choice2.getName(), createdChoice2.getName());
+// Assert.assertEquals(choice2.getDescription(), createdChoice2.getDescription());
+//// Assert.assertEquals(createdPoll.getCreator(), createdChoice2.getCreator());
+//
+// List<VoterListBean> createdVoterLists = voterListService.getVoterLists(createdPollId);
+//
+// Assert.assertNotNull(createdVoterLists);
+// Assert.assertEquals(1, createdVoterLists.size());
+// VoterListBean createdVoterList = createdVoterLists.get(0);
+// Assert.assertNotNull(createdVoterList);
+// Assert.assertNotNull(createdVoterList.getEntityId());
+//
+// VoterListBean reloadedVoterList = voterListService.getVoterList(createdPollId, createdVoterList.getEntityId());
+// Assert.assertEquals(createdVoterList, reloadedVoterList);
+//
+// Assert.assertEquals(voterList.getName(), createdVoterList.getName());
+// Assert.assertEquals(voterList.getWeight(), createdVoterList.getWeight(), 0);
+//
+// Assert.assertNotNull(createdVoterList.getMember());
+// Assert.assertEquals(2, createdVoterList.getMember().size());
+//
+//// VoterListMember createdVoterListMember1 = Iterables.get(createdVoterList.getMember(), 0);
+////
+//// Assert.assertNotNull(createdVoterListMember1);
+//// Assert.assertNotNull(createdVoterListMember1.getTopiaId());
+//// VoterListMember reloadedVoterListMember1 = voterListService.getMember(createdPoll.getTopiaId(), createdVoterList.getTopiaId(), createdVoterListMember1.getTopiaId());
+//// Assert.assertEquals(createdVoterListMember1, reloadedVoterListMember1);
+////
+//// Assert.assertEquals(reloadedVoterListMember1.getName(), createdVoterListMember1.getName());
+//// Assert.assertEquals(reloadedVoterListMember1.getEmail(), createdVoterListMember1.getEmail());
+//// Assert.assertEquals(reloadedVoterListMember1.getWeight(), createdVoterListMember1.getWeight(), 0);
+////
+//// VoterListMember createdVoterListMember2 = Iterables.get(createdVoterList.getMember(), 1);
+////
+//// Assert.assertNotNull(createdVoterListMember2);
+//// Assert.assertNotNull(createdVoterListMember2.getTopiaId());
+////
+//// VoterListMember reloadedVoterListMember2 = voterListService.getMember(createdPoll.getTopiaId(), createdVoterList.getTopiaId(), createdVoterListMember2.getTopiaId());
+//// Assert.assertEquals(createdVoterListMember2, reloadedVoterListMember2);
+////
+//// Assert.assertEquals(reloadedVoterListMember2.getName(), createdVoterListMember2.getName());
+//// Assert.assertEquals(reloadedVoterListMember2.getEmail(), createdVoterListMember2.getEmail());
+//// Assert.assertEquals(reloadedVoterListMember2.getWeight(), createdVoterListMember2.getWeight(), 0);
+//
+// }
}
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java
index 5210f86..e06ce45 100644
--- a/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java
@@ -93,7 +93,7 @@ public class VoteCountingServiceTest extends AbstractPollenServiceTest {
choice2.setDescription("Choice B");
choices.add(choice2);
- PollenEntityRef<Poll> createdPollRef = pollService.createPoll(poll, choices, null);
+ PollenEntityRef<Poll> createdPollRef = pollService.createPoll(poll, choices);
String pollId = createdPollRef.getEntityId();
diff --git a/pom.xml b/pom.xml
index 8d48b76..a00355d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -163,7 +163,7 @@
<webmotionVersion>2.4.1-SNAPSHOT</webmotionVersion>
<nuitonI18nVersion>3.1</nuitonI18nVersion>
- <eugenePluginVersion>2.9</eugenePluginVersion>
+ <eugenePluginVersion>2.10-SNAPSHOT</eugenePluginVersion>
<topiaVersion>3.0-SNAPSHOT</topiaVersion>
<nuitonWebVersion>1.16</nuitonWebVersion>
diff --git a/src/site/rst/restApi.rst b/src/site/rst/restApi.rst
index 31eb228..fe4591b 100644
--- a/src/site/rst/restApi.rst
+++ b/src/site/rst/restApi.rst
@@ -1,3 +1,24 @@
+.. -
+.. * #%L
+.. * Pollen
+.. * %%
+.. * Copyright (C) 2009 - 2014 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * the Free Software Foundation, either version 3 of the License, or
+.. * (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Public License for more details.
+.. *
+.. * You should have received a copy of the GNU Affero General Public License
+.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
+.. * #L%
+.. -
+
~~~~~~~~~~~~~~~
Pollen Rest API
~~~~~~~~~~~~~~~
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit 220b166c5ef0c4f91b7be676e7a85fcddca3fe1f
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Wed May 28 20:42:24 2014 +0200
use only email as login
---
.../persistence/entity/PollenUserTopiaDao.java | 5 --
pollen-persistence/src/main/xmi/pollen.zargo | Bin 18501 -> 18454 bytes
.../org/chorem/pollen/rest/api/JsonHelper.java | 4 +-
.../org/chorem/pollen/rest/api/AuthApiTest.java | 8 +-
.../chorem/pollen/rest/api/PollenUserApiTest.java | 4 +-
.../pollen/services/bean/PollenUserBean.java | 12 ---
.../pollen/services/service/PollenUserService.java | 18 +----
.../service/security/PollenSecurityRealm.java | 2 +-
.../services/service/security/SecurityService.java | 4 +-
pollen-services/src/main/resources/fixtures.yaml | 3 -
.../services/service/PollenUserServiceTest.java | 28 ++++---
pollen-ui-angular/src/main/webapp/index.html | 8 +-
.../src/main/webapp/js/controllers/userCtrl.js | 2 +-
.../src/main/webapp/partials/user-edit.html | 2 +-
.../src/main/webapp/partials/user-login.html | 2 +-
.../src/main/webapp/partials/user-register.html | 82 +++++++++------------
16 files changed, 69 insertions(+), 115 deletions(-)
diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java
index f1331fa..b040a79 100644
--- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java
+++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserTopiaDao.java
@@ -31,11 +31,6 @@ import java.util.List;
*/
public class PollenUserTopiaDao extends AbstractPollenUserTopiaDao<PollenUser> {
- public boolean loginExists(String login) {
- boolean exists = forLoginEquals(login).exists();
- return exists;
- }
-
public boolean emailExists(String email) {
boolean exists = forEmailEquals(email).exists();
return exists;
diff --git a/pollen-persistence/src/main/xmi/pollen.zargo b/pollen-persistence/src/main/xmi/pollen.zargo
index 13a00d2..271cc74 100644
Binary files a/pollen-persistence/src/main/xmi/pollen.zargo and b/pollen-persistence/src/main/xmi/pollen.zargo differ
diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java
index 863a2b1..e30c5a4 100644
--- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java
+++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/JsonHelper.java
@@ -134,7 +134,9 @@ public class JsonHelper {
src.encode(idFactory);
JsonObject object = new JsonObject();
- object.add("permission", new JsonPrimitive(src.getPermission()));
+ if (src.getPermission()!=null) {
+ object.add("permission", new JsonPrimitive(src.getPermission()));
+ }
object.add("id", new JsonPrimitive(src.getReducedId()));
result = object;
diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java
index 308447b..fdef569 100644
--- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java
+++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java
@@ -46,7 +46,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest {
public void login() throws URISyntaxException, IOException {
Request request = createRequest("/v1/login")
- .addParameter("login", "admin")
+ .addParameter("login", "admin(a)pollen.org")
.addParameter("password", "admin")
.Post();
@@ -60,7 +60,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest {
public void loginThenLogout() throws URISyntaxException, IOException {
Request login = createRequest("/v1/login")
- .addParameter("login", "admin")
+ .addParameter("login", "admin(a)pollen.org")
.addParameter("password", "admin")
.Post();
@@ -85,7 +85,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest {
public void badLogin() throws URISyntaxException, IOException {
Request request = createRequest("/v1/login")
- .addParameter("login", "admin" + System.nanoTime())
+ .addParameter("login", "admin(a)pollen.org" + System.nanoTime())
.addParameter("password", "admin" + System.nanoTime())
.Post();
@@ -99,7 +99,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest {
public void badPassword() throws URISyntaxException, IOException {
Request request = createRequest("/v1/login")
- .addParameter("login", "admin")
+ .addParameter("login", "admin(a)pollen.org")
.addParameter("password", "admin" + System.nanoTime())
.Post();
diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java
index 18bf5bb..16e2b2f 100644
--- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java
+++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java
@@ -78,7 +78,7 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest {
@Test
public void getUsers() throws Exception {
- String sessionToken = login("admin", "admin");
+ String sessionToken = login("admin(a)pollen.org", "admin");
Request request = createRequest("/v1/users").Get();
request.addHeader(PollenRestApiRequestFilter.REQUEST_HEADER_SESSION_TOKEN, sessionToken);
@@ -91,7 +91,7 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest {
@Test
public void getUser() throws Exception {
- String sessionToken = login("admin", "admin");
+ String sessionToken = login("admin(a)pollen.org", "admin");
PollenUser pollenUser = fixture("user_jean");
String userId = encodeId(pollenUser.getTopiaId());
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java
index 5fb38d1..b9e1239 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java
@@ -32,8 +32,6 @@ import org.chorem.pollen.persistence.entity.PollenUserImpl;
*/
public class PollenUserBean extends PollenBean<PollenUser> {
- protected String login;
-
protected String name;
protected boolean administrator;
@@ -54,7 +52,6 @@ public class PollenUserBean extends PollenBean<PollenUser> {
setEntityId(entity.getTopiaId());
setName(entity.getName());
- setLogin(entity.getLogin());
setAdministrator(entity.isAdministrator());
setLanguage(entity.getLanguage());
setEmail(entity.getEmail());
@@ -69,7 +66,6 @@ public class PollenUserBean extends PollenBean<PollenUser> {
entity.setTopiaId(getEntityId());
entity.setName(getName());
- entity.setLanguage(getLogin());
entity.setAdministrator(isAdministrator());
entity.setLanguage(getLanguage());
entity.setEmail(getEmail());
@@ -79,14 +75,6 @@ public class PollenUserBean extends PollenBean<PollenUser> {
}
- public String getLogin() {
- return login;
- }
-
- public void setLogin(String login) {
- this.login = login;
- }
-
public String getName() {
return name;
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
index 21729b2..e7e3417 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
@@ -179,8 +179,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
PollenUserBean user = new PollenUserBean();
user.setAdministrator(true);
- String login = "admin";
- user.setLogin(login);
user.setEmail("admin(a)pollen.org");
user.setPassword("admin");
createUser(user, false);
@@ -188,8 +186,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
user = new PollenUserBean();
user.setAdministrator(false);
- login = "user";
- user.setLogin(login);
user.setEmail("user(a)pollen.org");
user.setPassword("user");
createUser(user, false);
@@ -206,24 +202,14 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
PollenUser persisted = userExists ? getUser0(user.getEntityId()) : null;
PollenUserTopiaDao dao = getPollenUserDao();
- String userLogin = user.getLogin();
String userEmail = getCleanMail(user.getEmail());
- boolean loginNotBlank = checkNotBlank(errors, "login", userLogin, "login can not be empty");
-
- if (loginNotBlank && !userExists) {
-
- check(errors, "login", !dao.loginExists(userLogin), "login already exists");
-
- }
-
boolean emailNotblank = checkNotBlank(errors, "email", userEmail, "email can not be empty");
if (emailNotblank) {
checkValidEmail(errors, "email", userEmail, "email is not valid");
-
if (userExists) {
// check if email is available only if has changed
@@ -244,7 +230,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
}
- boolean passwordNotBlank = checkNotBlank(errors, "password", userLogin, "password can not be empty");
+ boolean passwordNotBlank = checkNotBlank(errors, "password", user.getPassword() , "password can not be empty");
if (userExists && passwordNotBlank) {
@@ -304,7 +290,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
PollenToken emailActivation = getSecurityService().generateNewToken();
toSave = getPollenUserDao().create();
- toSave.setLogin(user.getLogin());
toSave.setEmailActivationToken(emailActivation);
getSecurityService().setUserPassword(toSave, password);
@@ -341,5 +326,4 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
}
-
}
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java
index f873a75..2c37561 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java
@@ -84,7 +84,7 @@ public class PollenSecurityRealm extends AuthorizingRealm {
try {
PollenUser pollenUser =
- persistenceContext.getPollenUserDao().forLoginEquals(username).findUniqueOrNull();
+ persistenceContext.getPollenUserDao().forEmailEquals(username).findUniqueOrNull();
if (pollenUser == null) {
throw new AuthenticationException();
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
index 2b2246c..a5d0359 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java
@@ -80,7 +80,7 @@ public class SecurityService extends PollenServiceSupport {
throw new PollenAuthenticationException(e);
}
- PollenUser user = getPollenUserDao().forLoginEquals(login).findUnique();
+ PollenUser user = getPollenUserDao().forEmailEquals(login).findUnique();
// Generate a token
PollenToken pollenToken = generateNewToken();
@@ -122,7 +122,7 @@ public class SecurityService extends PollenServiceSupport {
Preconditions.checkNotNull(login);
- PollenUser user = getPollenUserDao().forLoginEquals(login).findUnique();
+ PollenUser user = getPollenUserDao().forEmailEquals(login).findUnique();
String newPassword = serviceContext.generatePassword();
diff --git a/pollen-services/src/main/resources/fixtures.yaml b/pollen-services/src/main/resources/fixtures.yaml
index 9388393..6f02abe 100644
--- a/pollen-services/src/main/resources/fixtures.yaml
+++ b/pollen-services/src/main/resources/fixtures.yaml
@@ -1,6 +1,5 @@
user_tony:
&tony !user
- login: tony
password: fake
name: T
email: tony(a)pollen.fake
@@ -8,7 +7,6 @@ user_tony:
user_jean:
&jean !user
- login: jean
password: fake
name: J
email: jean(a)pollen.fake
@@ -16,7 +14,6 @@ user_jean:
user_julien:
&julien !user
- login: julien
password: fake
name: J
email: julien(a)pollen.fake
diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java
index 0cdac80..80df789 100644
--- a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java
+++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java
@@ -66,7 +66,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
@Test
public void testGetPollenUsers() throws PollenAuthenticationException, PollenInvalidSessionTokenException {
- login("jean", "fake");
+ login("jean(a)pollen.fake", "fake");
PaginationResultBean<PollenUserBean> users = service.getUsers(null);
@@ -78,7 +78,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
@Test
public void testGetPollenUser() throws PollenInvalidSessionTokenException, PollenAuthenticationException {
- login("jean", "fake");
+ login("jean(a)pollen.fake", "fake");
try {
service.getUser("pollen_user_tony_" + System.nanoTime());
@@ -107,27 +107,35 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
}
PollenUserBean newUser = new PollenUserBean();
- newUser.setLogin("pollen");
newUser.setEmail("pollen(a)pollen.org");
+ try {
+ service.createUser(newUser, true);
+ Assert.fail();
+ } catch (InvalidFormException e) {
+ // no password
+ assertErrorKeyFound(e, "password");
+ }
+ newUser.setPassword("password");
+
PollenEntityRef<PollenUser> savedUser = service.createUser(newUser, true);
Assert.assertNotNull(savedUser);
Assert.assertNotNull(savedUser.getEntityId());
PollenUserBean newUser2 = new PollenUserBean();
- newUser2.setLogin("pollen");
newUser2.setEmail("pollen(a)pollen.org");
try {
service.createUser(newUser2, true);
Assert.fail();
} catch (InvalidFormException e) {
- // not available login
+ // no password
// not available email
- assertErrorKeyFound(e, "login", "email");
+ assertErrorKeyFound(e, "password", "email");
}
- newUser2.setLogin("pollen2");
+ newUser2.setPassword("password");
+
try {
service.createUser(newUser2, true);
Assert.fail();
@@ -145,7 +153,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
@Test
public void testEditUser() throws InvalidFormException, PollenInvalidSessionTokenException, PollenAuthenticationException {
- login("jean", "fake");
+ login("jean(a)pollen.fake", "fake");
PollenUserBean user = service.getUser(this.user.getTopiaId());
user.setPassword("password");
@@ -155,9 +163,6 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
// getServiceContext().getPersistenceContext().getHibernateSupport().getHibernateSession().evict(user);
- String originalLogin = user.getLogin();
-
- user.setLogin("yetanotherlogin");
String email = "tony(a)pollen.org";
user.setEmail(email);
@@ -174,7 +179,6 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest {
PollenUserBean savedUser = service.getUser(user.getEntityId());
Assert.assertNotNull(savedUser);
- Assert.assertEquals(originalLogin, savedUser.getLogin());
Assert.assertEquals(email, savedUser.getEmail());
// Assert.assertNotNull(savedUser.getEmailActivationToken());
}
diff --git a/pollen-ui-angular/src/main/webapp/index.html b/pollen-ui-angular/src/main/webapp/index.html
index 6778c75..173af00 100644
--- a/pollen-ui-angular/src/main/webapp/index.html
+++ b/pollen-ui-angular/src/main/webapp/index.html
@@ -53,13 +53,13 @@
<li><a href="#/poll/create">Creer</a></li>
</ul>
<ul class="nav navbar-nav pull-right">
- <li ng-show="!currentUser.login">
+ <li ng-show="!currentUser.id">
<a href="#/user/register/">S'enregistrer</a>
</li>
- <li class="divider-vertical" ng-show="!currentUser.login"></li>
+ <li class="divider-vertical" ng-show="!currentUser.id"></li>
- <li ng-show="!currentUser.login" dropdown>
+ <li ng-show="!currentUser.id" dropdown>
<a href="#" role="button" class="dropdown-toggle">
Connexion<strong class="caret"></strong>
</a>
@@ -81,7 +81,7 @@
</ul>
</li>
- <li class="dropdown" ng-show="currentUser.login">
+ <li class="dropdown" ng-show="currentUser.id">
<a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">
{{ currentUser.name || currentUser.login }} <strong class="caret"></strong>
</a>
diff --git a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js
index 2340bcf..218f6df 100644
--- a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js
+++ b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js
@@ -24,7 +24,7 @@
if (!angular.isDefined($scope.data)) {
$scope.data = {};
}
- $scope.data.user = {login:'', email:'', password:'', password2:''};
+ $scope.data.user = {email:'', password:'', password2:''};
$scope.submit = function () {
if ($scope.data.user.password == $scope.data.user.password2) {
diff --git a/pollen-ui-angular/src/main/webapp/partials/user-edit.html b/pollen-ui-angular/src/main/webapp/partials/user-edit.html
index dda3568..53ef5ce 100644
--- a/pollen-ui-angular/src/main/webapp/partials/user-edit.html
+++ b/pollen-ui-angular/src/main/webapp/partials/user-edit.html
@@ -37,7 +37,7 @@
<div class="control-group">
<label for="formEmail" class="col-sm-5 text-right control-label">
- Adresse E-Mail
+ Courriel
</label>
<div class="col-sm-6">
diff --git a/pollen-ui-angular/src/main/webapp/partials/user-login.html b/pollen-ui-angular/src/main/webapp/partials/user-login.html
index a14be4c..5d8f8e4 100644
--- a/pollen-ui-angular/src/main/webapp/partials/user-login.html
+++ b/pollen-ui-angular/src/main/webapp/partials/user-login.html
@@ -2,7 +2,7 @@
<div class="control-group">
<label class="control-label">
- Nom d'Utilisateur
+ Courriel
<info-error error="restError.connexion" data="data.user"></info-error>
</label>
<input type="text" name='login' ng-model="data.user.login" class="form-control"/>
diff --git a/pollen-ui-angular/src/main/webapp/partials/user-register.html b/pollen-ui-angular/src/main/webapp/partials/user-register.html
index c658c84..6ae1a8f 100644
--- a/pollen-ui-angular/src/main/webapp/partials/user-register.html
+++ b/pollen-ui-angular/src/main/webapp/partials/user-register.html
@@ -18,21 +18,42 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
#L%
-->
- <h2> Inscription sur Pollen</h2>
+ <h2>Créer un compte</h2>
<form ng-submit="submit()" class="form-horizontal">
- <div class="control-group">
- <label for="formLogin" class="col-sm-5 text-right control-label">
- Identifiant
- </label>
- <div class="col-sm-6">
- <input type="text" id="formLogin" name="login" class="form-control" ng-model="data.user.login"/>
+
+ <div class="control-group">
+
+ <label for="formEmail" class="col-sm-5 text-right control-label">
+ Courriel
+ </label>
+
+ <div class="col-sm-6">
+ <input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/>
+ </div>
+ <div class="col-sm-1">
+ <info-error error="restError.email[0]" data="data.user.email"></info-error>
+ </div>
</div>
- <div class="col-sm-1">
- <info-error error="restError.login[0]" data="data.user.login"></info-error>
+
+ <div class="control-group">
+ <label for="formName" class="col-sm-5 text-right control-label">
+ Nom
+ </label>
+ <div class="col-sm-6">
+ <input type="text" id="formName" name="login" class="form-control" ng-model="data.user.name"/>
+ </div>
+ <div class="col-sm-1">
+ </div>
</div>
- </div>
- <div class="control-group">
+
+ <div>
+ <div class="col-sm-3"></div>
+ <div class="col-sm-8"><hr/></div>
+ <div class="col-sm-1"></div>
+ </div>
+
+ <div class="control-group">
<label for="formPassword" class="col-sm-5 text-right control-label">
Mot de passe
</label>
@@ -52,47 +73,10 @@
</div>
</div>
- <div>
- <div class="col-sm-3"></div>
- <div class="col-sm-8"><hr/></div>
- <div class="col-sm-1"></div>
- </div>
-
- <div class="control-group">
-
- <label for="formEmail" class="col-sm-5 text-right control-label">
- Courriel
- </label>
-
- <div class="col-sm-6">
- <input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/>
- </div>
- <div class="col-sm-1">
- <info-error error="restError.email[0]" data="data.user.email"></info-error>
- </div>
- </div>
-
- <div class="control-group">
- <label for="formName" class="col-sm-5 text-right control-label">
- Nom d'utilisateur
- </label>
- <div class="col-sm-6">
- <input type="text" id="formName" name="login" class="form-control" ng-model="data.user.name"/>
- </div>
- <div class="col-sm-1">
- </div>
- </div>
-
- <div>
- <div class="col-sm-3"></div>
- <div class="col-sm-8"><hr /></div>
- <div class="col-sm-1"></div>
- </div>
-
<div class="control-group">
<div class="col-sm-5"></div>
<div class="col-sm-6">
- <button class="btn btn-primary" type="submit">Envoyer</button>
+ <button class="btn btn-primary" type="submit">S'enregister</button>
</div>
<div class="col-sm-1"></div>
</div>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit a66900491967d2985e5bbe19c938c2f6743203f5
Author: Adrien Garandel <a.garandel(a)dralagen.fr>
Date: Wed May 28 17:59:35 2014 +0200
beautifull form for register
---
.../src/main/webapp/partials/user-register.html | 54 +++++++++++++++-------
1 file changed, 38 insertions(+), 16 deletions(-)
diff --git a/pollen-ui-angular/src/main/webapp/partials/user-register.html b/pollen-ui-angular/src/main/webapp/partials/user-register.html
index 982c6fc..c658c84 100644
--- a/pollen-ui-angular/src/main/webapp/partials/user-register.html
+++ b/pollen-ui-angular/src/main/webapp/partials/user-register.html
@@ -21,11 +21,11 @@
<h2> Inscription sur Pollen</h2>
<form ng-submit="submit()" class="form-horizontal">
<div class="control-group">
- <label for="formName" class="col-sm-5 text-right control-label">
- Nom d'utilisateur
+ <label for="formLogin" class="col-sm-5 text-right control-label">
+ Identifiant
</label>
<div class="col-sm-6">
- <input type="text" id="formName" name="login" class="form-control" ng-model="data.user.login"/>
+ <input type="text" id="formLogin" name="login" class="form-control" ng-model="data.user.login"/>
</div>
<div class="col-sm-1">
<info-error error="restError.login[0]" data="data.user.login"></info-error>
@@ -33,39 +33,61 @@
</div>
<div class="control-group">
-
- <label for="formEmail" class="col-sm-5 text-right control-label">
- Adresse E-Mail
+ <label for="formPassword" class="col-sm-5 text-right control-label">
+ Mot de passe
</label>
-
<div class="col-sm-6">
- <input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/>
+ <input type="password" id="formPassword" name="password" class="form-control" ng-model="data.user.password"/>
+ </div>
+ </div>
+ <div class="control-group">
+ <label for="formPassword2" class="col-sm-5 text-right control-label">
+ Confirmation
+ </label>
+ <div class="col-sm-6">
+ <input type="password" id="formPassword2" name="password2" class="form-control" ng-model="data.user.password2"/>
</div>
<div class="col-sm-1">
- <info-error error="restError.email[0]" data="data.user.email"></info-error>
+ <span class="glyphicon glyphicon-exclamation-sign danger" tooltip="Mot de passe différent" ng-if="data.user.password != data.user.password2"></span>
</div>
</div>
+ <div>
+ <div class="col-sm-3"></div>
+ <div class="col-sm-8"><hr/></div>
+ <div class="col-sm-1"></div>
+ </div>
+
<div class="control-group">
- <label for="formPassword" class="col-sm-5 text-right control-label">
- Mot de passe
+
+ <label for="formEmail" class="col-sm-5 text-right control-label">
+ Courriel
</label>
+
<div class="col-sm-6">
- <input type="password" id="formPassword" name="password" class="form-control" ng-model="data.user.password"/>
+ <input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/>
+ </div>
+ <div class="col-sm-1">
+ <info-error error="restError.email[0]" data="data.user.email"></info-error>
</div>
</div>
+
<div class="control-group">
- <label for="formPassword2" class="col-sm-5 text-right control-label">
- Confirmation
+ <label for="formName" class="col-sm-5 text-right control-label">
+ Nom d'utilisateur
</label>
<div class="col-sm-6">
- <input type="password" id="formPassword2" name="password2" class="form-control" ng-model="data.user.password2"/>
+ <input type="text" id="formName" name="login" class="form-control" ng-model="data.user.name"/>
</div>
<div class="col-sm-1">
- <span class="glyphicon glyphicon-exclamation-sign danger" tooltip="Mot de passe différent" ng-if="data.user.password != data.user.password2"></span>
</div>
</div>
+ <div>
+ <div class="col-sm-3"></div>
+ <div class="col-sm-8"><hr /></div>
+ <div class="col-sm-1"></div>
+ </div>
<div class="control-group">
<div class="col-sm-5"></div>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit 874c7ac4e5dcb1df4148ebd066049ebd286229d2
Author: Tony CHEMIT <chemit(a)codelutin.com>
Date: Wed May 28 17:51:51 2014 +0200
fix password in form
---
.../java/org/chorem/pollen/services/service/PollenUserService.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
index 1df2fa3..21729b2 100644
--- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
+++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java
@@ -217,8 +217,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
}
- checkNotBlank(errors, "password", userLogin, "password can not be empty");
-
boolean emailNotblank = checkNotBlank(errors, "email", userEmail, "email can not be empty");
if (emailNotblank) {
@@ -246,7 +244,9 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer
}
- if (userExists) {
+ boolean passwordNotBlank = checkNotBlank(errors, "password", userLogin, "password can not be empty");
+
+ if (userExists && passwordNotBlank) {
// check current password
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0
This is an automated email from the git hooks/post-receive script.
New commit to branch devel in repository Pollen.
See http://git.None/Pollen.git
commit b31fdd395c8d7edc133e9b2751f3e2074dd41743
Author: Adrien Garandel <a.garandel(a)dralagen.fr>
Date: Wed May 28 17:33:34 2014 +0200
update style of form
---
pollen-ui-angular/src/main/webapp/css/style.css | 5 +++++
.../src/main/webapp/partials/user-edit.html | 16 ++++++++--------
.../src/main/webapp/partials/user-register.html | 20 ++++++++++----------
3 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/pollen-ui-angular/src/main/webapp/css/style.css b/pollen-ui-angular/src/main/webapp/css/style.css
index 66fad89..dcdd462 100644
--- a/pollen-ui-angular/src/main/webapp/css/style.css
+++ b/pollen-ui-angular/src/main/webapp/css/style.css
@@ -229,3 +229,8 @@ i.icon-collapse {
width:200px;
border-right:1px solid #DDD;
}
+
+.container .control-group .form-control, .container .control-group .control-label {
+ margin-bottom:15px;
+ vertical-align:center;
+}
diff --git a/pollen-ui-angular/src/main/webapp/partials/user-edit.html b/pollen-ui-angular/src/main/webapp/partials/user-edit.html
index 5c29acf..dda3568 100644
--- a/pollen-ui-angular/src/main/webapp/partials/user-edit.html
+++ b/pollen-ui-angular/src/main/webapp/partials/user-edit.html
@@ -24,10 +24,10 @@
<form class="horizontal-form" ng-submit="editUser()">
<div class="control-group">
- <label for="formName" class="col-sm-3 text-right control-label">
+ <label for="formName" class="col-sm-5 text-right control-label">
Nom
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="text" id="formName" class="form-control" ng-model="currentUser.name"/>
</div>
<div class="col-sm-1">
@@ -36,11 +36,11 @@
<div class="control-group">
- <label for="formEmail" class="col-sm-3 text-right control-label">
+ <label for="formEmail" class="col-sm-5 text-right control-label">
Adresse E-Mail
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="email" id="formEmail" name="email" class="form-control" ng-model="currentUser.email"/>
</div>
<div class="col-sm-1">
@@ -49,10 +49,10 @@
</div>
<div class="control-group">
- <label for="formPassword" class="col-sm-3 text-right control-label">
+ <label for="formPassword" class="col-sm-5 text-right control-label">
Mot de passe Actuel
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="password" id="formPassword" class="form-control" ng-model="currentUser.password"/>
</div>
<div class="col-sm-1">
@@ -61,8 +61,8 @@
</div>
<div class="control-group">
- <div class="col-sm-3"></div>
- <div class="col-sm-8">
+ <div class="col-sm-5"></div>
+ <div class="col-sm-6">
<button class="btn btn-primary" type="submit">Envoyer</button>
</div>
<div class="col-sm-1"></div>
diff --git a/pollen-ui-angular/src/main/webapp/partials/user-register.html b/pollen-ui-angular/src/main/webapp/partials/user-register.html
index eb37772..982c6fc 100644
--- a/pollen-ui-angular/src/main/webapp/partials/user-register.html
+++ b/pollen-ui-angular/src/main/webapp/partials/user-register.html
@@ -21,10 +21,10 @@
<h2> Inscription sur Pollen</h2>
<form ng-submit="submit()" class="form-horizontal">
<div class="control-group">
- <label for="formName" class="col-sm-3 text-right control-label">
+ <label for="formName" class="col-sm-5 text-right control-label">
Nom d'utilisateur
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="text" id="formName" name="login" class="form-control" ng-model="data.user.login"/>
</div>
<div class="col-sm-1">
@@ -34,11 +34,11 @@
<div class="control-group">
- <label for="formEmail" class="col-sm-3 text-right control-label">
+ <label for="formEmail" class="col-sm-5 text-right control-label">
Adresse E-Mail
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="email" id="formEmail" name="email" class="form-control" ng-model="data.user.email"/>
</div>
<div class="col-sm-1">
@@ -47,18 +47,18 @@
</div>
<div class="control-group">
- <label for="formPassword" class="col-sm-3 text-right">
+ <label for="formPassword" class="col-sm-5 text-right control-label">
Mot de passe
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="password" id="formPassword" name="password" class="form-control" ng-model="data.user.password"/>
</div>
</div>
<div class="control-group">
- <label for="formPassword2" class="col-sm-3 text-right">
+ <label for="formPassword2" class="col-sm-5 text-right control-label">
Confirmation
</label>
- <div class="col-sm-8">
+ <div class="col-sm-6">
<input type="password" id="formPassword2" name="password2" class="form-control" ng-model="data.user.password2"/>
</div>
<div class="col-sm-1">
@@ -68,8 +68,8 @@
<div class="control-group">
- <div class="col-sm-3"></div>
- <div class="col-sm-8">
+ <div class="col-sm-5"></div>
+ <div class="col-sm-6">
<button class="btn btn-primary" type="submit">Envoyer</button>
</div>
<div class="col-sm-1"></div>
--
To stop receiving notification emails like this one, please contact
Chorem.org SCM administrator <admin+scm(a)chorem.org>.
1
0