Index: openacs-4/packages/calendar/www/cal-item-new.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/cal-item-new.adp,v diff -u -N -r1.26 -r1.26.2.1 --- openacs-4/packages/calendar/www/cal-item-new.adp 7 Aug 2017 23:48:05 -0000 1.26 +++ openacs-4/packages/calendar/www/cal-item-new.adp 27 Jan 2023 13:12:41 -0000 1.26.2.1 @@ -11,16 +11,12 @@ Index: openacs-4/packages/calendar/www/cal-item-new.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/cal-item-new.tcl,v diff -u -N -r1.41.2.13 -r1.41.2.14 --- openacs-4/packages/calendar/www/cal-item-new.tcl 24 Jan 2023 12:02:51 -0000 1.41.2.13 +++ openacs-4/packages/calendar/www/cal-item-new.tcl 27 Jan 2023 13:12:41 -0000 1.41.2.14 @@ -11,10 +11,10 @@ cal_item_id:object_id,optional {item_type_id:object_id ""} {date:clock(%Y-%m-%d) ""} - {julian_date ""} - {start_time ""} - {end_time ""} - {view "day"} + {julian_date:clock(%J) ""} + {start_time:clock(%H:%M) ""} + {end_time:clock(%H:%M) ""} + {view:token "day"} {return_url:localurl "./"} } @@ -24,6 +24,7 @@ set user_id [ad_conn user_id] set date [calendar::adjust_date -date $date -julian_date $julian_date] + set ansi_date $date set calendar_list [calendar::calendar_list] set calendar_options [calendar::calendar_list -privilege create] @@ -59,23 +60,19 @@ {maxlength 255} {html {size 45}} } - {date:date + {date:h5date {label "[_ calendar.Date_1]"} - {format "YYYY MM DD"} - {after_html { \[[_ calendar.y-m-d]\]} } } {time_p:text(radio) {label " "} {options {{"[_ calendar.All_Day_Event]" 0} {"[_ calendar.Use_Hours_Below]" 1} }} } - {start_time:date,optional + {start_time:h5time,optional {label "[_ calendar.Start_Time]"} - {format {[lc_get formbuilder_time_format]}} } - {end_time:date,optional + {end_time:h5time,optional {label "[_ calendar.End_Time]"} - {format {[lc_get formbuilder_time_format]}} } {location:text(text),optional {label "[_ calendar.Location]"} @@ -134,31 +131,6 @@ #---------------------------------------------------------------------- -# LARS: Hack to make enable/disable time widgets work with i18n -#---------------------------------------------------------------------- - -set format_string [lc_get formbuilder_time_format] - -multirow create time_format_elms name - -while { $format_string ne "" } { - # Snip off the next token - regexp {([^/\-.: ]*)([/\-.: ]*)(.*)} \ - $format_string match word sep format_string - # Extract the trailing "t", if any - regexp -nocase $template::util::date::token_exp $word \ - match token type - - # Output the widget - set fragment_def $template::util::date::fragment_widgets([string toupper $token]) - - multirow append time_format_elms [lindex $fragment_def 1] -} - - - - -#---------------------------------------------------------------------- # Finishing definition of form #---------------------------------------------------------------------- @@ -192,25 +164,13 @@ -package_id $package_id] } - set date [calendar::from_sql_datetime -sql_date $ansi_date -format "YYY-MM-DD"] set repeat_p 0 - if {[info exists start_time] && - $start_time != 0 && - [template::util::date::validate [list {} {} {} $start_time 0 {} {HH24:MI}] e] - } { - # Set the start time - set start_hour $start_time - set start_time "{} {} {} $start_time 0 {} {HH24:MI}" - set end_time "{} {} {} [expr {$start_hour + 1}] 0 {} {HH24:MI}" - set time_p 1 - } else { - set time_p 0 - set start_hour $start_time - set start_time "{} {} {} 0 0 {} {HH24:MI}" - set end_time "{} {} {} 0 0 {} {HH24:MI}" - set js "disableTime('cal_item');" + + if {$start_time ne "" && $end_time eq ""} { + # Default end_time is one hour after start_time + set end_time [clock format [clock add [clock scan $start_time -format {%H:%M}] 1 hour] -format {%H:%M}] } - # set the calendar_id before setting item_types form element (see top of script) DAVEB + set calendar_id [lindex $calendar_options 0 1] } -edit_request { @@ -254,14 +214,18 @@ element set_properties cal_item edit_what -widget hidden element set_value cal_item edit_what this } - set date [calendar::from_sql_datetime -sql_date $ansi_start_date -format "YYY-MM-DD"] - set start_time [template::util::date::from_ansi $ansi_start_date [lc_get formbuilder_time_format]] - set end_time [template::util::date::from_ansi $ansi_end_date [lc_get formbuilder_time_format]] + set start_clock [clock scan $ansi_start_date -format {%Y-%m-%d %H:%M:%S}] + set end_clock [clock scan $ansi_end_date -format {%Y-%m-%d %H:%M:%S}] + + set date [clock format $start_clock -format {%Y-%m-%d}] + set start_time [clock format $start_clock -format {%H:%M}] + set end_time [clock format $end_clock -format {%H:%M}] + } -on_submit { - set start_date [calendar::to_sql_datetime -date $date -time $start_time -time_p $time_p] - set end_date [calendar::to_sql_datetime -date $date -time $end_time -time_p $time_p] + set start_date "$date $start_time" + set end_date "$date $end_time" if {![calendar::item::dates_valid_p -start_date $start_date -end_date $end_date]} { template::form::set_error cal_item start_time [_ calendar.start_time_before_end_time] @@ -270,16 +234,9 @@ } -new_data { - set formatted_date "" - append formatted_date \ - [template::util::date::get_property year $date] " " \ - [template::util::date::get_property month $date] " " \ - [template::util::date::get_property day $date] - set date $formatted_date + set start_date "$date $start_time" + set end_date "$date $end_time" - set start_date [calendar::to_sql_datetime -date $date -time $start_time -time_p $time_p] - set end_date [calendar::to_sql_datetime -date $date -time $end_time -time_p $time_p] - if { ![calendar::personal_p -calendar_id $calendar_id] } { permission::require_permission -object_id $calendar_id -privilege create } @@ -304,25 +261,15 @@ } -edit_data { - # - # Format date - # - set formatted_date "" - append formatted_date \ - [template::util::date::get_property year $date] " " \ - [template::util::date::get_property month $date] " " \ - [template::util::date::get_property day $date] - set date $formatted_date - # Require write permission on the item and create on the calendar into which we're putting it permission::require_write_permission -object_id $cal_item_id if { ![calendar::personal_p -calendar_id $calendar_id] } { permission::require_permission -object_id $calendar_id -privilege create } # set up the datetimes - set start_date [calendar::to_sql_datetime -date $date -time $start_time -time_p $time_p] - set end_date [calendar::to_sql_datetime -date $date -time $end_time -time_p $time_p] + set start_date "$date $start_time" + set end_date "$date $end_time" set edit_all_p 0 set edit_past_events_p 0 if {[info exists edit_what]} { @@ -370,7 +317,6 @@ # Register JS Eventhandlers template::add_event_listener -id cal_item:elements:time_p:0 -preventdefault=false -script {TimePChanged(this);} template::add_event_listener -id cal_item:elements:time_p:1 -preventdefault=false -script {TimePChanged(this);} -template::add_event_listener -id cal_item.date-button -script {showCalendarWithDateWidget('date', 'y-m-d');} template::add_body_script -script { if (document.forms["cal_item"].time_p[0].checked == true ) {