You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2015/08/27 11:12:13 UTC
svn commit: r1698097 -
/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js
Author: lofwyr
Date: Thu Aug 27 09:12:13 2015
New Revision: 1698097
URL: http://svn.apache.org/r1698097
Log:
TOBAGO-1483: Let tc:date use a Bootstrap component as picker
- cleanup
Modified:
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js?rev=1698097&r1=1698096&r2=1698097&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js Thu Aug 27 09:12:13 2015
@@ -15,278 +15,6 @@
* limitations under the License.
*/
-Tobago.Calendar = {};
-
-Tobago.Calendar.init = function (elements) {
- // init next/prev buttons
- var buttons = Tobago.Utils.selectWithJQuery(elements, ".tobago-calendar-header[data-tobago-command]");
- buttons.each(function () {
- var button = jQuery(this);
- var step;
- switch (button.data("tobago-command")) {
- case "fastPrev":
- step = -12;
- break;
- case "prev":
- step = -1;
- break;
- case "next":
- step = 1;
- break;
- case "fastNext":
- step = 12;
- break;
- default:
- // ignore
- return;
- }
- button.click(function () {
- Tobago.Calendar.addMonth(jQuery(this).parents(".tobago-calendar"), step);
- });
- });
-
- // click directly on a day
- var days = Tobago.Utils.selectWithJQuery(elements, ".tobago-calendar-day");
- days.each(function () {
- var day = jQuery(this);
- day.click(function () {
- var day = jQuery(this);
- var column = day.index();
- var row = day.parent().index();
- Tobago.Calendar.selectDay(jQuery(this).parents(".tobago-calendar"), row, column);
- });
- });
-
- // init from data field, if there is any (e. g. we are in date picker popup)
- var calendarWithDateField = Tobago.Utils.selectWithJQuery(elements, ".tobago-calendar[data-tobago-date-input-id]");
- calendarWithDateField.each(function () {
- var calendar = jQuery(this);
- Tobago.Calendar.initFromDateField(calendar);
- });
-
- var okButton
- = Tobago.Utils.selectWithJQuery(elements, ".tobago-calendar").parent().find("button[data-tobago-date-picker-ok]");
- okButton.click(function () {
- var button = jQuery(this);
- var calendar = button.parent().parent().find(".tobago-calendar");
- Tobago.Calendar.writeIntoField(calendar);
- Tobago.Popup.close(button);
- });
-
-};
-
-Tobago.Calendar.MONTH_LENGTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-
-Tobago.Calendar.isLeapYear = function (year) {
- return (year % 4 == 0)
- && (year % 100 != 0 || year % 400 == 0);
-};
-
-Tobago.Calendar.getMonthLength = function (month, year) {
- if (month == 2 && Tobago.Calendar.isLeapYear(year)) {
- return 29;
- }
- return Tobago.Calendar.MONTH_LENGTH[month - 1];
-};
-
-Tobago.Calendar.getPreviousMonthLength = function (month, year) {
- if (month == 1) {
- return Tobago.Calendar.getMonthLength(12, year - 1);
- } else {
- return Tobago.Calendar.getMonthLength(month - 1, year);
- }
-};
-
-Tobago.Calendar.getDayOfWeek = function (day, month, year) {
- var date = new Date();
- date.setDate(day);
- date.setMonth(month - 1);
- date.setFullYear(year);
- // getDay() -> 0 (Su) to 6 (Sa)
- return date.getDay() + 1; // +1 -> Java compatibility
-};
-
-Tobago.Calendar.firstDayOffset = function (month, year, firstDayOfWeek) {
- var day = Tobago.Calendar.getDayOfWeek(1, month, year);
- return (day + 7 - firstDayOfWeek) % 7;
-};
-
-Tobago.Calendar.getMonthName = function (calendar, month) {
- return calendar.data("tobago-month-names").split(',')[month - 1];
-};
-
-/**
- * @param calendar The base element as jQuery object (root of the component).
- */
-Tobago.Calendar.initCalendarData = function (calendar, year, month, day) {
- calendar.data("tobago-day", day);
- calendar.data("tobago-month", month);
- calendar.data("tobago-year", year);
- Tobago.Calendar.recalculateValues(calendar);
-};
-
-/**
- * @param calendar The base element as jQuery object (root of the component).
- */
-Tobago.Calendar.addMonth = function (calendar, monthDelta) {
- var yearDelta = 0;
- if (monthDelta > 0) {
- yearDelta = Math.floor(monthDelta / 12);
- monthDelta = monthDelta % 12;
- } else {
- yearDelta = -Math.floor(-monthDelta / 12);
- monthDelta = -((-monthDelta) % 12);
- }
- var day = calendar.data("tobago-day");
- var month = calendar.data("tobago-month") + monthDelta;
- var year = calendar.data("tobago-year") + yearDelta;
- if (month < 1) {
- month = 12;
- --year;
- } else if (month > 12) {
- month = 1;
- ++year;
- }
- if (day > Tobago.Calendar.getMonthLength(month, year)) {
- day = Tobago.Calendar.getMonthLength(month, year);
- }
- Tobago.Calendar.initCalendarData(calendar, year, month, day);
- Tobago.Calendar.initCalendar(calendar);
-};
-
-Tobago.Calendar.recalculateValues = function (calendar) {
- var day = calendar.data("tobago-day");
- var month = calendar.data("tobago-month");
- var year = calendar.data("tobago-year");
-
- if (month < 1) {
- month += 12;
- --year;
- } else if (month > 12) {
- month -= 12;
- ++year;
- }
-
- if (day < 1) {
- --month;
- if (month < 1) {
- month += 12;
- --year;
- }
- day += Tobago.Calendar.getMonthLength(month, year);
- } else if (day > Tobago.Calendar.getMonthLength(month, year)) {
- day -= Tobago.Calendar.getMonthLength(month, year);
- ++month;
- if (month > 12) {
- month -= 12;
- ++year;
- }
- }
-
- calendar.data("tobago-day", day);
- calendar.data("tobago-month", month);
- calendar.data("tobago-year", year);
-};
-
-Tobago.Calendar.selectDay = function (calendar, row, column) {
-// alert(id + " " + row + " " + column);
- var month = calendar.data("tobago-month");
- var year = calendar.data("tobago-year");
- var firstDayOfWeek = calendar.data("tobago-first-day-of-week");
- var firstDayOffset = Tobago.Calendar.firstDayOffset(month, year, firstDayOfWeek);
- Tobago.Calendar.initCalendarData(calendar, year, month, row * 7 + column - firstDayOffset + 1);
- Tobago.Calendar.initCalendar(calendar);
-};
-
-Tobago.Calendar.initCalendar = function (calendar) {
- var day = calendar.data("tobago-day");
- var month = calendar.data("tobago-month");
- var year = calendar.data("tobago-year");
- var firstDayOfWeek = calendar.data("tobago-first-day-of-week");
- var firstDayOffset = Tobago.Calendar.firstDayOffset(month, year, firstDayOfWeek);
- var prevMonthLength = Tobago.Calendar.getPreviousMonthLength(month, year);
- var monthLength = Tobago.Calendar.getMonthLength(month, year);
-
- var monthTitle = calendar.find(".tobago-calendar-header > [data-tobago-command=month]");
- monthTitle.html(Tobago.Calendar.getMonthName(calendar, month));
- var yearTitle = calendar.find(".tobago-calendar-header > [data-tobago-command=year]");
- yearTitle.html(year);
-
- calendar.find(".tobago-calendar-grid").children(".tobago-calendar-row").each(function (i) {
- var row = jQuery(this);
- row.children(".tobago-calendar-day").each(function (j) {
- var span = jQuery(this);
- var display = (i * 7) + j - firstDayOffset + 1;
- if (display <= 0) {
- span.addClass("tobago-calendar-day-markup-disabled");
- span.removeClass("tobago-calendar-day-markup-selected");
- display += prevMonthLength;
- } else if (display > monthLength) {
- span.addClass("tobago-calendar-day-markup-disabled");
- span.removeClass("tobago-calendar-day-markup-selected");
- display -= monthLength;
- } else {
- span.removeClass("tobago-calendar-day-markup-disabled");
- if (display == day) {
- span.addClass("tobago-calendar-day-markup-selected");
- } else {
- span.removeClass("tobago-calendar-day-markup-selected");
- }
- }
- span.html(display);
- });
- });
-};
-
-/**
- * @param element jQuery element with a reference to the date field (with data attribute tobago-date-input-id)
- * @return the date field as jQuery object
- */
-Tobago.Calendar.getDateField = function (element) {
- return jQuery(Tobago.Utils.escapeClientId(element.data("tobago-date-input-id")));
-};
-
-Tobago.Calendar.initFromDateField = function (calendar) {
- var dateField = Tobago.Calendar.getDateField(calendar);
- var pattern = dateField.data("tobago-pattern");
- var value = dateField.val();
- var date = new Date(getDateFromFormat(value, pattern));
- if (date.getTime() == 0) {
- date = new Date();
- } else if (!pattern.match(/d/)) {
- // Workaround for patterns without day (d) like mm/yyyy (repair the result from parsing)
- date.setDate(date.getDate() + 1);
- }
- var day = date.getDate();
- var month = date.getMonth() + 1;
- var year = date.getFullYear();
-
- Tobago.Calendar.initCalendarData(calendar, year, month, day);
- Tobago.Calendar.initCalendar(calendar);
-};
-
-Tobago.Calendar.writeIntoField = function (calendar) {
-
- var day = calendar.data("tobago-day");
- var month = calendar.data("tobago-month");
- var year = calendar.data("tobago-year");
-
- var date = new Date(year, month - 1, day);
- var dateField = Tobago.Calendar.getDateField(calendar);
- var newValue = formatDate(date, dateField.data("tobago-pattern"));
- if (dateField.val() != newValue) {
- dateField.val(newValue);
- dateField.change();
- }
-
- dateField.focus();
-};
-
-Tobago.registerListener(Tobago.Calendar.init, Tobago.Phase.DOCUMENT_READY);
-Tobago.registerListener(Tobago.Calendar.init, Tobago.Phase.AFTER_UPDATE);
-
-// --------------------------------------------------------------------------------------------------------------------
-
Tobago.DateTime = {};
Tobago.DateTime.init = function (elements) {