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
39 import java.util.Calendar;
40
41 import javax.jcr.PropertyType;
42
43 import org.apache.commons.lang.time.DateFormatUtils;
44 import org.slf4j.Logger;
45 import org.slf4j.LoggerFactory;
46
47
48
49
50
51
52 public class DialogDate extends DialogEditWithButton {
53
54 Logger log = LoggerFactory.getLogger(DialogDate.class);
55
56
57
58
59
60 protected void doBeforeDrawHtml() {
61 super.doBeforeDrawHtml();
62
63 this.getButton().setLabel(MessagesManager.get("dialog.date.select"));
64 this.getButton().setSaveInfo(false);
65
66
67 String format = "yyyy-MM-dd";
68 String jsFormat = "%Y-%m-%d";
69 boolean displayTime = !this.getConfigValue("time", "false").equals("false");
70 boolean singleClick = this.getConfigValue("doubleClick", "false").equals("false");
71 if (displayTime) {
72 format += "' 'HH:mm:ss";
73 jsFormat += " %k:%M:%S";
74 }
75
76 String inputFieldId = this.getName();
77 getButton().setId("butt_"+inputFieldId);
78 String buttonId = this.getButton().getId();
79 String calId = "cal_"+buttonId;
80 getButton().setOnclick(calId+".show()");
81
82 final String calendarScript = "<script type=\"text/javascript\">" +
83 " var "+calId+" = Calendar.setup({\n" +
84 " inputField : \""+inputFieldId+"\"," +
85 " ifFormat : \""+jsFormat+"\"," +
86 " showsTime : "+String.valueOf(displayTime)+"," +
87 " timeFormat : \"24\"," +
88 " cache : true,"+
89 " button : \""+buttonId+"\"," +
90 " singleClick : \""+String.valueOf(singleClick)+"\"," +
91
92 " step : 1" +
93 " });</script>";
94
95 this.getButton().setHtmlPost(calendarScript);
96
97 if (this.getStorageNode() != null && this.getStorageNode().getNodeData(this.getName()).isExist()) {
98 Calendar valueCalendar = this.getStorageNode().getNodeData(this.getName()).getDate();
99
100
101 if (valueCalendar != null) {
102 Calendar local = DateUtil.getLocalCalendarFromUTC(valueCalendar);
103 String value = DateFormatUtils.format(local.getTime(), format);
104 this.setValue(value);
105 }
106 }
107
108 this.setConfig("type", this.getConfigValue("type", PropertyType.TYPENAME_DATE));
109 }
110 }