1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.gui.dialog;
35
36 import info.magnolia.cms.i18n.MessagesManager;
37 import info.magnolia.cms.util.DateUtil;
38 import info.magnolia.context.MgnlContext;
39
40 import java.util.Calendar;
41
42 import javax.jcr.PropertyType;
43
44 import org.apache.commons.lang.time.DateFormatUtils;
45 import org.slf4j.Logger;
46 import org.slf4j.LoggerFactory;
47
48
49
50
51
52
53 public class DialogDate extends DialogEditWithButton {
54
55 Logger log = LoggerFactory.getLogger(DialogDate.class);
56
57
58
59
60
61 protected void doBeforeDrawHtml() {
62 super.doBeforeDrawHtml();
63
64 this.getButton().setLabel(MessagesManager.get("dialog.date.select"));
65 this.getButton().setSaveInfo(false);
66
67
68 String format = this.getConfigValue("dateFormat", "yyyy-MM-dd");
69 String jsFormat = this.getConfigValue("jsDateFormat", "%Y-%m-%d");
70 boolean displayTime = !this.getConfigValue("time", "false").equals("false");
71 boolean singleClick = this.getConfigValue("doubleClick", "false").equals("false");
72 if (displayTime) {
73
74 format += "' '" + this.getConfigValue("timeFormat", "HH:mm:ss");;
75 jsFormat += " " + this.getConfigValue("jsTimeFormat", "%k:%M:%S");
76 }
77
78 String inputFieldId = this.getName();
79 getButton().setId("butt_"+inputFieldId);
80 String buttonId = this.getButton().getId();
81 String calId = "cal_"+buttonId;
82 getButton().setOnclick(calId+".show()");
83
84 final String calendarScript = "<script type=\"text/javascript\">" +
85 " var "+calId+" = Calendar.setup({\n" +
86 " inputField : \""+inputFieldId+"\"," +
87 " ifFormat : \""+jsFormat+"\"," +
88 " showsTime : "+String.valueOf(displayTime)+"," +
89 " timeFormat : \"24\"," +
90 " cache : true,"+
91 " button : \""+buttonId+"\"," +
92 " singleClick : \""+String.valueOf(singleClick)+"\"," +
93
94 " step : 1" +
95 " });</script>";
96
97 this.getButton().setHtmlPost(calendarScript);
98
99 if (this.getStorageNode() != null && this.getStorageNode().getNodeData(this.getName()).isExist()) {
100 Calendar valueCalendar = this.getStorageNode().getNodeData(this.getName()).getDate();
101
102
103 if (valueCalendar != null) {
104 Calendar local = DateUtil.getLocalCalendarFromUTC(valueCalendar);
105 String value = DateFormatUtils.format(local.getTime(), format);
106 this.setValue(value);
107 }
108 }
109
110 this.setConfig("type", this.getConfigValue("type", PropertyType.TYPENAME_DATE));
111 }
112 }