diff --git a/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarAction.java b/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarAction.java index 6b544a93b3da..de3508fd7eca 100644 --- a/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarAction.java +++ b/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarAction.java @@ -4649,7 +4649,6 @@ public void doNew(RunData data, Context context) state.setState(STATE_NEW); state.setCalendarEventId("", ""); state.setIsNewCalendar(true); - state.setIsPastAlertOff(true); sstate.setAttribute(FREQUENCY_SELECT, null); sstate.setAttribute(CalendarAction.SSTATE__RECURRING_RULE, null); @@ -4827,18 +4826,6 @@ else if(hour.equals("100") || minute.equals("100")) { state.setNewData(calId, title,description,Integer.parseInt(month),Integer.parseInt(day),year,houri,Integer.parseInt(minute),Integer.parseInt(dhour),Integer.parseInt(dminute),type,timeType,location, addfieldsMap, intentionStr); state.setState(STATE_NEW); - } - else if( event_startTime.before(now_time) && state.getIsPastAlertOff() ) { - // IsPastAlertOff - // true: no alert shown -> then show the alert, set false; - // false: Alert shown, if user click ADD - doAdd again -> accept it, set true, set alert empty; - - String errorCode = rb.getString("java.alert.past"); - addAlert(sstate, errorCode); - - state.setNewData(state.getPrimaryCalendarReference(), title,description,Integer.parseInt(month),Integer.parseInt(day),year,houri,Integer.parseInt(minute),Integer.parseInt(dhour),Integer.parseInt(dminute),type,timeType,location, addfieldsMap, intentionStr); - state.setState(STATE_NEW); - state.setIsPastAlertOff(false); } else if (!DateFormatterUtil.checkDate(Integer.parseInt(day), Integer.parseInt(month), Integer.parseInt(year))) { addAlert(sstate, rb.getString("date.invalid")); state.setNewData(state.getPrimaryCalendarReference(), title,description,Integer.parseInt(month),Integer.parseInt(day),year,houri,Integer.parseInt(minute),Integer.parseInt(dhour),Integer.parseInt(dminute),type,timeType,location, addfieldsMap, intentionStr); diff --git a/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarActionState.java b/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarActionState.java index 2c1152b6cd21..a324d60dc80c 100644 --- a/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarActionState.java +++ b/calendar/calendar-tool/tool/src/java/org/sakaiproject/calendar/tool/CalendarActionState.java @@ -76,8 +76,6 @@ public class CalendarActionState private String m_AttachmentFlag = "false"; private LocalEvent savedData = new LocalEvent(); - private boolean m_IsPastAlertOff = true; - private String m_state = ""; private String currentpage = "second"; @@ -213,16 +211,6 @@ public void setIsNewCalendar(boolean isNewcal) } // setIsNewCalendar - /** - * Get the status of past alert off: true - no alert shown; false - alert shown - * @return IsPastAlertOff - */ - public boolean getIsPastAlertOff() - { - return m_IsPastAlertOff; - - } // getIsPastAlertOff - /** * Gets the main calendar ID associated with the event list. Many calendars may be merged into this list, but there is only one one calendar that is used for adding/modifying events. */ @@ -231,16 +219,6 @@ public String getPrimaryCalendarReference() return m_primaryCalendarReference; } - /** - * Set the status of past alert off: true - no alert shown; false - alert shown - * @param IsPastAlertOff The status of past alert off: true - no alert shown; false - alert shown - */ - public void setIsPastAlertOff(boolean IsPastAlertOff) - { - m_IsPastAlertOff = IsPastAlertOff; - - } // setIsPastAlertOff - /** * Sets the main calendar ID associated with the event list. Many calendars may be merged into this * list, but there is only one one calendar that is used for adding/modifying events/ diff --git a/calendar/calendar-tool/tool/src/webapp/vm/calendar/chef_calendar_new.vm b/calendar/calendar-tool/tool/src/webapp/vm/calendar/chef_calendar_new.vm index 8c188f29a815..cafd3a8656ec 100644 --- a/calendar/calendar-tool/tool/src/webapp/vm/calendar/chef_calendar_new.vm +++ b/calendar/calendar-tool/tool/src/webapp/vm/calendar/chef_calendar_new.vm @@ -370,18 +370,17 @@ $(function() { #set($day=$date.getDay()) #set($year=$todayYear) #end - + diff --git a/library/src/webapp/js/lang-datepicker/lang-datepicker.js b/library/src/webapp/js/lang-datepicker/lang-datepicker.js index 5fa0d378dd02..074e30f02544 100644 --- a/library/src/webapp/js/lang-datepicker/lang-datepicker.js +++ b/library/src/webapp/js/lang-datepicker/lang-datepicker.js @@ -74,14 +74,18 @@ const defaults = { const [datePart, timePart] = value.split('T'); const [year, month, day] = datePart.split('-').map(Number); const timeComponents = timePart.split(':').map(Number); - + } + + // Handle simple YYYY-MM-DD format + if (/^\d{4}-\d{2}-\d{2}$/.test(value)) { + const [year, month, day] = value.split('-').map(Number); if (!isNaN(year) && !isNaN(month) && !isNaN(day)) { const d = new Date(); d.setFullYear(year); - d.setMonth(month - 1); + d.setMonth(month - 1); // JS months are 0-indexed d.setDate(day); - d.setHours(timeComponents[0] || 0); - d.setMinutes(timeComponents[1] || 0); + d.setHours(0); // Explicitly set time to midnight local + d.setMinutes(0); d.setSeconds(0); d.setMilliseconds(0); return d;