Commit abb72c29 by Tuomas Riihimäki

Palautetta

1 parent 2d17d211
...@@ -9,6 +9,7 @@ import java.util.Map.Entry; ...@@ -9,6 +9,7 @@ import java.util.Map.Entry;
import javax.annotation.security.DeclareRoles; import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed; import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -128,4 +129,15 @@ public class AccountEventBean implements AccountEventBeanLocal { ...@@ -128,4 +129,15 @@ public class AccountEventBean implements AccountEventBeanLocal {
} }
@Override
public AccountEvent markDelivered(AccountEvent e, Calendar c) {
accountfacade.reload(e);
if (e.getDelivered() != null)
{
throw new EJBException("AccountEvent " + e + " already marked paid!");
}
e.setDelivered(c);
return e;
}
} }
...@@ -46,6 +46,7 @@ import fi.insomnia.bortal.model.User; ...@@ -46,6 +46,7 @@ import fi.insomnia.bortal.model.User;
UserPermission.S_INVITE_USERS, UserPermission.S_INVITE_USERS,
UserPermission.S_READ_ORGROLES, UserPermission.S_READ_ORGROLES,
UserPermission.S_WRITE_ORGROLES, UserPermission.S_WRITE_ORGROLES,
UserPermission.S_VITUTTAAKO,
MapPermission.S_VIEW, MapPermission.S_VIEW,
MapPermission.S_MANAGE_MAPS, MapPermission.S_MANAGE_MAPS,
......
...@@ -520,4 +520,10 @@ public class UserBean implements UserBeanLocal { ...@@ -520,4 +520,10 @@ public class UserBean implements UserBeanLocal {
return eventUserFacade.searchEventUsers(searchQuery); return eventUserFacade.searchEventUsers(searchQuery);
} }
@Override
public void submitFeedback(String feedback) {
logger.warn("Received feedback {}", feedback);
// TODO
}
} }
\ No newline at end of file
package fi.insomnia.bortal.beans; package fi.insomnia.bortal.beans;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Calendar;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -25,4 +26,6 @@ public interface AccountEventBeanLocal { ...@@ -25,4 +26,6 @@ public interface AccountEventBeanLocal {
List<Role> getRolesFromAccountEvents(EventUser u); List<Role> getRolesFromAccountEvents(EventUser u);
AccountEvent markDelivered(AccountEvent e, Calendar c);
} }
...@@ -81,4 +81,6 @@ public interface UserBeanLocal { ...@@ -81,4 +81,6 @@ public interface UserBeanLocal {
SearchResult<EventUser> getThisEventsUsers(UserSearchQuery searchQuery); SearchResult<EventUser> getThisEventsUsers(UserSearchQuery searchQuery);
void submitFeedback(String feedback);
} }
...@@ -17,7 +17,7 @@ public enum UserPermission implements IAppPermission { ...@@ -17,7 +17,7 @@ public enum UserPermission implements IAppPermission {
MANAGE_HTTP_SESSION, // ("Manage http sessions"), MANAGE_HTTP_SESSION, // ("Manage http sessions"),
INVITE_USERS, // ("Invite users"), INVITE_USERS, // ("Invite users"),
READ_ORGROLES, // ("View organization roles"), READ_ORGROLES, // ("View organization roles"),
WRITE_ORGROLES, // ("Modify organization roles"), WRITE_ORGROLES, VITUTTAAKO, // ("Modify organization roles"),
; ;
public static final String S_VIEW_ALL = "USER/VIEW_ALL"; public static final String S_VIEW_ALL = "USER/VIEW_ALL";
...@@ -35,6 +35,7 @@ public enum UserPermission implements IAppPermission { ...@@ -35,6 +35,7 @@ public enum UserPermission implements IAppPermission {
public static final String S_INVITE_USERS = "USER/INVITE_USERS"; public static final String S_INVITE_USERS = "USER/INVITE_USERS";
public static final String S_READ_ORGROLES = "USER/READ_ORGROLES"; public static final String S_READ_ORGROLES = "USER/READ_ORGROLES";
public static final String S_WRITE_ORGROLES = "USER/WRITE_ORGROLES"; public static final String S_WRITE_ORGROLES = "USER/WRITE_ORGROLES";
public static final String S_VITUTTAAKO = "USER/VITUTTAAKO";
private final String fullName; private final String fullName;
private final String key; private final String key;
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
</session-config> </session-config>
<context-param> <context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name> <param-name>javax.faces.PROJECT_STAGE</param-name>
<!-- <param-value>Production</param-value> --> <param-value>Production</param-value>
<param-value>Development</param-value> <!-- <param-value>Development</param-value>-->
</context-param> </context-param>
<context-param> <context-param>
......
...@@ -45,12 +45,17 @@ ...@@ -45,12 +45,17 @@
<h:outputText rendered="#{sessionHandler.loggedIn}" value="#{i18n['template.loggedInAs']} #{sessionHandler.currentUser.nick}" /> <h:outputText rendered="#{sessionHandler.loggedIn}" value="#{i18n['template.loggedInAs']} #{sessionHandler.currentUser.nick}" />
<div> <div>
<tools:loginLogout /> <tools:loginLogout />
</div> </div>
</div> </div>
<ui:fragment rendered="#{menuView.getMenu(0).size() > 1}"> <ui:fragment rendered="#{menuView.getMenu(0).size() > 1}">
<ul id="topmenu"> <ul id="topmenu">
<li jsfc="ui:repeat" var="menuitem" value="#{menuView.getMenu(0)}"><h:link outcome="#{menuitem.outcome}" value="#{i18n[menuitem.navigation.key]}" <li jsfc="ui:repeat" var="menuitem" value="#{menuView.getMenu(0)}"><h:link outcome="#{menuitem.outcome}" value="#{i18n[menuitem.navigation.key]}"
styleClass="#{menuitem.selected?'active':''}" /></li> styleClass="#{menuitem.selected?'active':''}" /></li>
<ui:fragment rendered="#{feedbackView.canFeedback}" >
<li><h:link outcome="/feedback/index" value="#{i18n['feedback.canFeedback']}" /></li>
</ui:fragment>
<li></li>
</ul> </ul>
</ui:fragment> </ui:fragment>
</div> </div>
......
...@@ -38,7 +38,7 @@ td span span div.rating-cancel { ...@@ -38,7 +38,7 @@ td span span div.rating-cancel {
} }
#login { #login {
width: 400px; width: 385px;
height: 23px; height: 23px;
float: right; float: right;
margin-top: 10px; margin-top: 10px;
......
...@@ -194,6 +194,10 @@ eventorgView.eventname = Name of event ...@@ -194,6 +194,10 @@ eventorgView.eventname = Name of event
eventorganiser.name = Eventorganiser eventorganiser.name = Eventorganiser
feedback.canFeedback = Feedback
feedback.submit = Submit
feedback.thanks = Thanks
food = Food food = Food
foodWave.accountevents = Accountevents foodWave.accountevents = Accountevents
......
...@@ -192,6 +192,10 @@ eventorgView.eventname = Tapahtuman nimi ...@@ -192,6 +192,10 @@ eventorgView.eventname = Tapahtuman nimi
eventorganiser.name = Tapahtumaj\u00E4rjest\u00E4j\u00E4 eventorganiser.name = Tapahtumaj\u00E4rjest\u00E4j\u00E4
feedback.canFeedback = Vituttaako?
feedback.submit = L\u00E4het\u00E4
feedback.thanks = Kiiiiitooooos! :)
food = Ruoka food = Ruoka
foodWave.accountevents = Maksetut tilaukset foodWave.accountevents = Maksetut tilaukset
......
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net) #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#Bill number #Bill number
# Validationmessages # Validationmessages
actionlog.create.header = Luo uusi ActionMessage actionlog.create.header = Luo uusi ActionMessage
actionlog.create.message = Viesti actionlog.create.message = Viesti
actionlog.create.role = Kohderooli actionlog.create.role = Kohderooli
actionlog.create.submitbutton = L\u00E4het\u00E4 actionlog.create.submitbutton = L\u00E4het\u00E4
actionlog.create.taskradio = Teht\u00E4v\u00E4 actionlog.create.taskradio = Teht\u00E4v\u00E4
actionlog.crew = Crew actionlog.crew = Crew
actionlog.message = Tapahtuma actionlog.message = Tapahtuma
actionlog.messagelist.description = Voit seurata sek\u00E4 luoda uusia ActionMessageja t\u00E4ss\u00E4 n\u00E4kym\u00E4ss\u00E4. actionlog.messagelist.description = Voit seurata sek\u00E4 luoda uusia ActionMessageja t\u00E4ss\u00E4 n\u00E4kym\u00E4ss\u00E4.
actionlog.messagelist.header = Viestilista actionlog.messagelist.header = Viestilista
actionlog.state = Tila actionlog.state = Tila
actionlog.task = Teht\u00E4v\u00E4 actionlog.task = Teht\u00E4v\u00E4
actionlog.tasklist.header = Teht\u00E4v\u00E4lista actionlog.tasklist.header = Teht\u00E4v\u00E4lista
actionlog.time = Aika actionlog.time = Aika
actionlog.user = Tekij\u00E4 actionlog.user = Tekij\u00E4
bill.billMarkedPaidMail.message = Laskusi numero {0} on merkitty maksetuksi. Voit nyt siirty\u00E4 lippukauppaan varamaamaan haluamasi paikat. \nTervetuloa tapahtumaan!\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi bill.billMarkedPaidMail.message = Laskusi numero {0} on merkitty maksetuksi. Voit nyt siirty\u00E4 lippukauppaan varamaamaan haluamasi paikat. \nTervetuloa tapahtumaan!\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi
bill.billMarkedPaidMail.subject = [INSOMNIA] Lasku merkitty maksetuksi bill.billMarkedPaidMail.subject = [INSOMNIA] Lasku merkitty maksetuksi
error.contact = Jos t\u00E4m\u00E4 toistuu, ota seuraava koodi talteen ja ota yhteys Infoon: error.contact = Jos t\u00E4m\u00E4 toistuu, ota seuraava koodi talteen ja ota yhteys Infoon:
error.error = Olet kohdannut virheen. error.error = Olet kohdannut virheen.
eventorg.create = Luo eventorg.create = Luo
eventorg.edit = Muokkaa eventorg.edit = Muokkaa
global.cancel = Peruuta global.cancel = Peruuta
global.copyright = Codecrew Ry global.copyright = Codecrew Ry
global.infomail = info@insomnia.fi global.infomail = info@insomnia.fi
global.notAuthorizedExecute = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia suorittaa t\u00E4t\u00E4 toimenpidett\u00E4! global.notAuthorizedExecute = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia suorittaa t\u00E4t\u00E4 toimenpidett\u00E4!
global.notauthorized = Sinulla ei ole riitt\u00E4vi\u00E4 oikeuksia t\u00E4lle sivulle. global.notauthorized = Sinulla ei ole riitt\u00E4vi\u00E4 oikeuksia t\u00E4lle sivulle.
global.save = Tallenna global.save = Tallenna
global.webpage = http://www.insomnia.fi global.webpage = http://www.insomnia.fi
httpsession.creationTime = Luotu httpsession.creationTime = Luotu
login.login = Kirjaudu sis\u00E4\u00E4n login.login = Kirjaudu sis\u00E4\u00E4n
login.logout = Kirjaudu ulos login.logout = Kirjaudu ulos
login.logoutmessage = Olet kirjautunut ulos j\u00E4rjestelm\u00E4st\u00E4. login.logoutmessage = Olet kirjautunut ulos j\u00E4rjestelm\u00E4st\u00E4.
login.password = Salasana login.password = Salasana
login.submit = Kirjaudu sis\u00E4\u00E4n login.submit = Kirjaudu sis\u00E4\u00E4n
login.username = K\u00E4ytt\u00E4j\u00E4tunnus login.username = K\u00E4ytt\u00E4j\u00E4tunnus
loginerror.header = Kirjautuminen ep\u00E4onnistui loginerror.header = Kirjautuminen ep\u00E4onnistui
loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut oikein. loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut oikein.
loginerror.resetpassword = Salasana unohtunut? loginerror.resetpassword = Salasana unohtunut?
passwordChanged.body = Voit nyt kirjautua k\u00E4ytt\u00E4j\u00E4tunnuksella ja uudella salasanalla sis\u00E4\u00E4n j\u00E4rjestelm\u00E4\u00E4n. passwordChanged.body = Voit nyt kirjautua k\u00E4ytt\u00E4j\u00E4tunnuksella ja uudella salasanalla sis\u00E4\u00E4n j\u00E4rjestelm\u00E4\u00E4n.
passwordChanged.header = Salasana vaihdettu onnistuneesti passwordChanged.header = Salasana vaihdettu onnistuneesti
passwordReset.errorChanging = Odotamaton virhe. Ota yhteytt\u00E4 yll\u00E4pitoon. passwordReset.errorChanging = Odotamaton virhe. Ota yhteytt\u00E4 yll\u00E4pitoon.
passwordReset.hashNotFound = Salasanan vaihto on vanhentunut. Jos haluat vaihtaa salasanan l\u00E4het\u00E4 vaihtopyynt\u00F6 uudelleen. passwordReset.hashNotFound = Salasanan vaihto on vanhentunut. Jos haluat vaihtaa salasanan l\u00E4het\u00E4 vaihtopyynt\u00F6 uudelleen.
permissiondenied.alreadyLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia! permissiondenied.alreadyLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia!
permissiondenied.header = P\u00E4\u00E4sy kielletty permissiondenied.header = P\u00E4\u00E4sy kielletty
permissiondenied.notLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia t\u00E4lle sivulle. permissiondenied.notLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia t\u00E4lle sivulle.
resetMail.body = Voit vaihtaa unohtuneen salasanan sy\u00F6tt\u00E4m\u00E4ll\u00E4 k\u00E4ytt\u00E4j\u00E4tunnuksesi allaolevaan kentt\u00E4\u00E4n. Tunnukseen liitettyyn s\u00E4hk\u00F6postiosoitteeseen l\u00E4hetet\u00E4\u00E4n kertak\u00E4ytt\u00F6inen osoite jossa voit vaihtaa sy\u00F6tt\u00E4m\u00E4si k\u00E4ytt\u00E4j\u00E4tunnuksen salasanan. resetMail.body = Voit vaihtaa unohtuneen salasanan sy\u00F6tt\u00E4m\u00E4ll\u00E4 k\u00E4ytt\u00E4j\u00E4tunnuksesi allaolevaan kentt\u00E4\u00E4n. Tunnukseen liitettyyn s\u00E4hk\u00F6postiosoitteeseen l\u00E4hetet\u00E4\u00E4n kertak\u00E4ytt\u00F6inen osoite jossa voit vaihtaa sy\u00F6tt\u00E4m\u00E4si k\u00E4ytt\u00E4j\u00E4tunnuksen salasanan.
resetMail.header = Salasana unohtunut? resetMail.header = Salasana unohtunut?
resetMail.send = L\u00E4het\u00E4 s\u00E4hk\u00F6posti resetMail.send = L\u00E4het\u00E4 s\u00E4hk\u00F6posti
resetmailSent.body = Antamasi k\u00E4ytt\u00E4j\u00E4tunnuksen s\u00E4hk\u00F6postiosoitteeseen on l\u00E4hetetty osoite jossa voit vaihtaa tunnuksen salasanan. resetmailSent.body = Antamasi k\u00E4ytt\u00E4j\u00E4tunnuksen s\u00E4hk\u00F6postiosoitteeseen on l\u00E4hetetty osoite jossa voit vaihtaa tunnuksen salasanan.
resetmailSent.header = S\u00E4hk\u00F6posti l\u00E4hetetty resetmailSent.header = S\u00E4hk\u00F6posti l\u00E4hetetty
...@@ -67,7 +67,7 @@ public class FoodWaveView extends GenericCDIView { ...@@ -67,7 +67,7 @@ public class FoodWaveView extends GenericCDIView {
private Integer foodWaveId; private Integer foodWaveId;
private ListDataModel<AccountEvent> accountEventLines; private ListDataModel<AccountEvent> accountEventLines;
private ListDataModel<FoodWave> foodWaves; private List<FoodWave> foodWaves;
private static final Logger logger = LoggerFactory.getLogger(FoodWaveView.class); private static final Logger logger = LoggerFactory.getLogger(FoodWaveView.class);
public List<Product> getProducts() { public List<Product> getProducts() {
...@@ -79,11 +79,6 @@ public class FoodWaveView extends GenericCDIView { ...@@ -79,11 +79,6 @@ public class FoodWaveView extends GenericCDIView {
public void onEdit() { public void onEdit() {
this.foodWaveBean.saveTemplate(template); this.foodWaveBean.saveTemplate(template);
} }
public void onEditFoodWave() {
FoodWave fw = foodWaves.getRowData();
this.foodWaveBean.merge(fw);
}
public void initTemplateList() { public void initTemplateList() {
super.requirePermissions(ShopPermission.SHOP_FOODWAVE); super.requirePermissions(ShopPermission.SHOP_FOODWAVE);
...@@ -92,11 +87,7 @@ public class FoodWaveView extends GenericCDIView { ...@@ -92,11 +87,7 @@ public class FoodWaveView extends GenericCDIView {
public void initFoodwaveManagerList() { public void initFoodwaveManagerList() {
if (super.requirePermissions(ShopPermission.MANAGE_FOODWAVES)) if (super.requirePermissions(ShopPermission.MANAGE_FOODWAVES))
{ {
if(foodWaves == null) { foodWaves = foodWaveBean.getEventFoodWaves();
super.beginConversation();
foodWaves = new ListDataModel<FoodWave>(foodWaveBean.getEventFoodWaves());
}
} }
} }
...@@ -119,9 +110,9 @@ public class FoodWaveView extends GenericCDIView { ...@@ -119,9 +110,9 @@ public class FoodWaveView extends GenericCDIView {
if (templateId != null) if (templateId != null)
{ {
template = foodWaveBean.findTemplate(templateId); template = foodWaveBean.findTemplate(templateId);
foodWaves = new ListDataModel<FoodWave>(template.getFoodwaves()); foodWaves = template.getFoodwaves();
} else { } else {
foodWaves = new ListDataModel<FoodWave>(foodWaveBean.getOpenFoodWaves()); foodWaves = foodWaveBean.getOpenFoodWaves();
} }
super.beginConversation(); super.beginConversation();
} }
...@@ -244,8 +235,7 @@ public class FoodWaveView extends GenericCDIView { ...@@ -244,8 +235,7 @@ public class FoodWaveView extends GenericCDIView {
public String deliverAccountEvent() { public String deliverAccountEvent() {
if (getAccountEventLines().isRowAvailable()) { if (getAccountEventLines().isRowAvailable()) {
AccountEvent e = getAccountEventLines().getRowData(); AccountEvent e = getAccountEventLines().getRowData();
e.setDelivered(Calendar.getInstance()); e = accountEventBean.markDelivered(e, Calendar.getInstance());
e = accountEventBean.merge(e);
foodWaveId = selectedFoodWave.getId(); foodWaveId = selectedFoodWave.getId();
selectedFoodWave = null; selectedFoodWave = null;
...@@ -344,11 +334,11 @@ public class FoodWaveView extends GenericCDIView { ...@@ -344,11 +334,11 @@ public class FoodWaveView extends GenericCDIView {
this.billLines = billLines; this.billLines = billLines;
} }
public void setFoodWaves(ListDataModel<FoodWave> foodWaves) { public void setFoodWaves(List<FoodWave> foodWaves) {
this.foodWaves = foodWaves; this.foodWaves = foodWaves;
} }
public ListDataModel<FoodWave> getFoodWaves() { public List<FoodWave> getFoodWaves() {
return foodWaves; return foodWaves;
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!