Při ukládání duplicitní hodnoty do unikátního klíče se vypíše do
chybového dialogu důvod a záznam se neobjeví v gridu. Hlášky do messageboxů jsou načítány ze zk-label.properties. closes #75
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package info.bukova.isspst;
|
package info.bukova.isspst;
|
||||||
|
|
||||||
|
import org.zkoss.util.resource.Labels;
|
||||||
|
|
||||||
public class StringUtils {
|
public class StringUtils {
|
||||||
|
|
||||||
public static String nullStr(String str) {
|
public static String nullStr(String str) {
|
||||||
@@ -10,4 +12,36 @@ public class StringUtils {
|
|||||||
return i == 0 ? "" : String.valueOf(i);
|
return i == 0 ? "" : String.valueOf(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String localizeDbErr(String sqlError) {
|
||||||
|
String splitMessage[] = sqlError.split("'");
|
||||||
|
String message = "";
|
||||||
|
|
||||||
|
for (int i = 0; i < splitMessage.length; i++) {
|
||||||
|
if (i % 2 == 0) {
|
||||||
|
message += getLocalized(splitMessage[i]);
|
||||||
|
} else {
|
||||||
|
message += " '" + splitMessage[i] + "' ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String localize(String key) {
|
||||||
|
return Labels.getLabel(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getLocalized(String str) {
|
||||||
|
String words[] = str.split(" ");
|
||||||
|
String key = "";
|
||||||
|
|
||||||
|
for (String word: words) {
|
||||||
|
if (!word.isEmpty()) {
|
||||||
|
key += word.substring(0, 1).toUpperCase() + word.substring(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Labels.getLabel("Db" + key);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package info.bukova.isspst.ui;
|
package info.bukova.isspst.ui;
|
||||||
|
|
||||||
|
import info.bukova.isspst.StringUtils;
|
||||||
import info.bukova.isspst.data.DataModel;
|
import info.bukova.isspst.data.DataModel;
|
||||||
import info.bukova.isspst.services.Service;
|
import info.bukova.isspst.services.Service;
|
||||||
import info.bukova.isspst.services.ValidationException;
|
import info.bukova.isspst.services.ValidationException;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.hibernate.exception.ConstraintViolationException;
|
||||||
import org.springframework.security.access.AccessDeniedException;
|
import org.springframework.security.access.AccessDeniedException;
|
||||||
import org.zkoss.bind.annotation.BindingParam;
|
import org.zkoss.bind.annotation.BindingParam;
|
||||||
import org.zkoss.bind.annotation.Command;
|
import org.zkoss.bind.annotation.Command;
|
||||||
@@ -63,12 +65,16 @@ public class FormViewModel<T extends DataModel> {
|
|||||||
classErr = "";
|
classErr = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
Messagebox.show("Chyba validace", "Chyba", Messagebox.OK, Messagebox.ERROR);
|
Messagebox.show(StringUtils.localize("DbValidationError"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
} catch (AccessDeniedException e) {
|
} catch (AccessDeniedException e) {
|
||||||
Messagebox.show("K vykobání této operace nemáte dostatečná oprávnění", "Chyba", Messagebox.OK, Messagebox.ERROR);
|
Messagebox.show(StringUtils.localize("ErrorRights"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
|
} catch (ConstraintViolationException e) {
|
||||||
|
Messagebox.show(StringUtils.localizeDbErr(e.getSQLException().getMessage()), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
|
dataBean.setValid(false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Messagebox.show("Chyba při ukládání záznamu", "Chyba", Messagebox.OK, Messagebox.ERROR);
|
Messagebox.show(StringUtils.localize("DbSaveError"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
|
dataBean.setValid(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package info.bukova.isspst.ui;
|
package info.bukova.isspst.ui;
|
||||||
|
|
||||||
|
import info.bukova.isspst.StringUtils;
|
||||||
import info.bukova.isspst.data.DataModel;
|
import info.bukova.isspst.data.DataModel;
|
||||||
import info.bukova.isspst.filters.Filter;
|
import info.bukova.isspst.filters.Filter;
|
||||||
import info.bukova.isspst.services.Service;
|
import info.bukova.isspst.services.Service;
|
||||||
@@ -140,7 +141,7 @@ public class ListViewModel<T extends DataModel> {
|
|||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (AccessDeniedException e) {
|
} catch (AccessDeniedException e) {
|
||||||
Messagebox.show("K vykobání této operace nemáte dostatečná oprávnění", "Chyba", Messagebox.OK, Messagebox.ERROR);
|
Messagebox.show(StringUtils.localize("ErrorRights"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,7 +165,7 @@ public class ListViewModel<T extends DataModel> {
|
|||||||
@Command
|
@Command
|
||||||
@NotifyChange({ "dataList", "dataBean" })
|
@NotifyChange({ "dataList", "dataBean" })
|
||||||
public void delete() {
|
public void delete() {
|
||||||
Messagebox.show("Opravdu smazat?", "Smazat záznam", Messagebox.YES
|
Messagebox.show(StringUtils.localize("DbReallyDelete"), StringUtils.localize("DbDeleteRecord"), Messagebox.YES
|
||||||
| Messagebox.NO, Messagebox.QUESTION,
|
| Messagebox.NO, Messagebox.QUESTION,
|
||||||
new EventListener<Event>() {
|
new EventListener<Event>() {
|
||||||
|
|
||||||
@@ -180,9 +181,9 @@ public class ListViewModel<T extends DataModel> {
|
|||||||
BindUtils.postNotifyChange(null, null,
|
BindUtils.postNotifyChange(null, null,
|
||||||
ListViewModel.this, "dataBean");
|
ListViewModel.this, "dataBean");
|
||||||
} catch (DataIntegrityViolationException e) {
|
} catch (DataIntegrityViolationException e) {
|
||||||
Messagebox.show("Chyba při mazání záznamu", "Chyba", Messagebox.OK, Messagebox.ERROR);
|
Messagebox.show(StringUtils.localize("DbCannotDelete"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
} catch (AccessDeniedException e) {
|
} catch (AccessDeniedException e) {
|
||||||
Messagebox.show("K vykobání této operace nemáte dostatečná oprávnění", "Chyba", Messagebox.OK, Messagebox.ERROR);
|
Messagebox.show(StringUtils.localize("ErrorRights"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -198,7 +199,7 @@ public class ListViewModel<T extends DataModel> {
|
|||||||
dataList.remove(dataBean);
|
dataList.remove(dataBean);
|
||||||
dataBean = null;
|
dataBean = null;
|
||||||
} catch (DataIntegrityViolationException e) {
|
} catch (DataIntegrityViolationException e) {
|
||||||
Messagebox.show("Chyba při mazání záznamu", "Chyba", Messagebox.OK,
|
Messagebox.show(StringUtils.localize("DbCannotDelete"), StringUtils.localize("Error"), Messagebox.OK,
|
||||||
Messagebox.ERROR);
|
Messagebox.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,3 +77,15 @@ ReportSend=Odeslat
|
|||||||
ReportPrint=Tisk
|
ReportPrint=Tisk
|
||||||
ReportReports=Sestavy
|
ReportReports=Sestavy
|
||||||
ReportTitle=Nadpis sestavy:
|
ReportTitle=Nadpis sestavy:
|
||||||
|
|
||||||
|
Error=Chyba
|
||||||
|
ErrorRights=K vykobání této operace nemáte dostatečná oprávnění
|
||||||
|
|
||||||
|
DbDeleteRecord=Smazat záznam
|
||||||
|
DbReallyDelete=Opravdu chcete smazat tento záznam?
|
||||||
|
DbDuplicateEntry=Chyba při ukládání záznamu: Duplicitní záznam
|
||||||
|
DbForKey= pro klíč
|
||||||
|
DbCannotDelete=Chyba při mazání záznamu: Záznam nelze smazat protože na něj odkazuje jiný záznam
|
||||||
|
DbSaveError=Chyba při ukládání záznamu
|
||||||
|
DbValidationError=Chyba validace
|
||||||
|
|
||||||
Reference in New Issue
Block a user