diff --git a/app/assets/javascripts/controllers/schedule/schedule_form_controller.js b/app/assets/javascripts/controllers/schedule/schedule_form_controller.js index 3653bcf758b..c0ce6713b14 100644 --- a/app/assets/javascripts/controllers/schedule/schedule_form_controller.js +++ b/app/assets/javascripts/controllers/schedule/schedule_form_controller.js @@ -65,7 +65,7 @@ ManageIQ.angular.app.controller('scheduleFormController', ['$http', '$scope', 's $scope.scheduleModel.name = data.schedule_name; $scope.scheduleModel.timer_typ = data.schedule_timer_type; $scope.scheduleModel.timer_value = data.schedule_timer_value; - $scope.scheduleModel.start_date = moment.utc(data.schedule_start_date, 'MM/DD/YYYY').toDate(); + $scope.scheduleModel.start_date = moment(data.schedule_start_date, 'MM/DD/YYYY').utc().toDate(); $scope.scheduleModel.start_hour = data.schedule_start_hour.toString(); $scope.scheduleModel.start_min = data.schedule_start_min.toString(); $scope.scheduleModel.time_zone = data.schedule_time_zone; diff --git a/app/assets/javascripts/directives/miq_datepicker.js b/app/assets/javascripts/directives/miq_datepicker.js index 56e00df164f..5423cf8d594 100644 --- a/app/assets/javascripts/directives/miq_datepicker.js +++ b/app/assets/javascripts/directives/miq_datepicker.js @@ -22,7 +22,7 @@ ManageIQ.angular.app.directive('miqDatepicker', function() { ctrl.$parsers.push(function(value) { if (value) { - return moment.utc(value, 'MM/DD/YYYY').toDate(); + return moment(value, 'MM/DD/YYYY').utc().toDate(); } }); diff --git a/app/controllers/ops_controller/settings/schedules.rb b/app/controllers/ops_controller/settings/schedules.rb index 387a623f5ec..989da5b452d 100644 --- a/app/controllers/ops_controller/settings/schedules.rb +++ b/app/controllers/ops_controller/settings/schedules.rb @@ -672,7 +672,7 @@ def schedule_set_timer_record_vars(schedule) end def schedule_set_start_time_record_vars(schedule) - run_at = create_time_in_utc("#{params[:start_date]} #{params[:start_hour]}:#{params[:start_min]}:00", + run_at = create_time_in_utc("#{Date.parse(params[:start_date])} #{params[:start_hour]}:#{params[:start_min]}:00", params[:time_zone]) schedule.run_at[:start_time] = "#{run_at} Z" end diff --git a/spec/controllers/ops_controller/settings/schedules_spec.rb b/spec/controllers/ops_controller/settings/schedules_spec.rb index f463e3ebe5c..ce766b6f5cd 100644 --- a/spec/controllers/ops_controller/settings/schedules_spec.rb +++ b/spec/controllers/ops_controller/settings/schedules_spec.rb @@ -159,6 +159,17 @@ expect(schedule.filter.exp[key]["field"]).to eq("Vm-name") expect(schedule.sched_action).to eq(:method=>"check_compliance") end + + it "sets start time correctly" do + params[:start_date] = "Mon Mar 12 2018 20:00:00 GMT-0400 (EDT)" + params[:start_hour] = "1" + params[:start_min] = "5" + params[:time_zone] = "UTC" + + allow(controller).to receive(:params).and_return(params) + controller.send(:schedule_set_start_time_record_vars, schedule) + expect(schedule.run_at[:start_time]).to eq("2018-03-12 01:05:00 UTC") + end end context "#build_attrs_from_params" do