mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
GUACAMOLE-1020: Move time conversion to shared function.
This commit is contained in:
@@ -28,9 +28,6 @@ angular.module('guacRestrict').controller('timeRestrictionFieldController', ['$s
|
|||||||
// Required types
|
// Required types
|
||||||
const TimeRestrictionEntry = $injector.get('TimeRestrictionEntry');
|
const TimeRestrictionEntry = $injector.get('TimeRestrictionEntry');
|
||||||
|
|
||||||
// Required services
|
|
||||||
const $log = $injector.get('$log');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options which dictate the behavior of the input field model, as defined
|
* Options which dictate the behavior of the input field model, as defined
|
||||||
* by https://docs.angularjs.org/api/ng/directive/ngModelOptions
|
* by https://docs.angularjs.org/api/ng/directive/ngModelOptions
|
||||||
@@ -176,6 +173,27 @@ angular.module('guacRestrict').controller('timeRestrictionFieldController', ['$s
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Since new Time fields in HTML get a default year of 1970, we need to
|
||||||
|
* merge the hours and minutes from the time field into the current Date,
|
||||||
|
* primarily so that Daylight Savings Time offsets are correct.
|
||||||
|
*
|
||||||
|
* @param {Date} justTime
|
||||||
|
* The Date object produced by an HTML field that contains the hours
|
||||||
|
* and minutes we need.
|
||||||
|
*
|
||||||
|
* @returns {Date}
|
||||||
|
* The Date object that merges the current calendar date with the
|
||||||
|
* hours and minutes from the HTML field.
|
||||||
|
*/
|
||||||
|
const timeToCurrentDate = function timeToCurrentDate(justTime) {
|
||||||
|
let dateAndTime = new Date();
|
||||||
|
dateAndTime.setHours(justTime.getHours());
|
||||||
|
dateAndTime.setMinutes(justTime.getMinutes());
|
||||||
|
|
||||||
|
return dateAndTime;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse the restrictions in the field into a string that can be stored
|
* Parse the restrictions in the field into a string that can be stored
|
||||||
* in an underlying module.
|
* in an underlying module.
|
||||||
@@ -214,21 +232,11 @@ angular.module('guacRestrict').controller('timeRestrictionFieldController', ['$s
|
|||||||
// When these fields first gets a value, the default year is 1970
|
// When these fields first gets a value, the default year is 1970
|
||||||
// In order to avoid issues with Daylight Savings Time, we have to
|
// In order to avoid issues with Daylight Savings Time, we have to
|
||||||
// work around this.
|
// work around this.
|
||||||
if (restrictions[i].startTime instanceof Date && restrictions[i].startTime.getFullYear() === 1970) {
|
if (restrictions[i].startTime instanceof Date && restrictions[i].startTime.getFullYear() === 1970)
|
||||||
let startHour = restrictions[i].startTime.getHours();
|
restrictions[i].startTime = timeToCurrentDate(restrictions[i].startTime);
|
||||||
let startMin = restrictions[i].startTime.getMinutes();
|
|
||||||
restrictions[i].startTime = new Date();
|
|
||||||
restrictions[i].startTime.setHours(startHour);
|
|
||||||
restrictions[i].startTime.setMinutes(startMin);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (restrictions[i].endTime instanceof Date && restrictions[i].endTime.getFullYear() === 1970) {
|
if (restrictions[i].endTime instanceof Date && restrictions[i].endTime.getFullYear() === 1970)
|
||||||
let endHour = restrictions[i].endTime.getHours();
|
restrictions[i].endTime = timeToCurrentDate(restrictions[i].endTime);
|
||||||
let endMin = restrictions[i].endTime.getMinutes();
|
|
||||||
restrictions[i].endTime = new Date();
|
|
||||||
restrictions[i].endTime.setHours(endHour);
|
|
||||||
restrictions[i].endTime.setMinutes(endMin);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Process the start day, factoring in wrapping for local time to
|
// Process the start day, factoring in wrapping for local time to
|
||||||
// UTC adjustments.
|
// UTC adjustments.
|
||||||
|
Reference in New Issue
Block a user