You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2017/07/28 11:05:49 UTC

svn commit: r1803265 - in /myfaces/tobago/trunk: tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/ tobago-example/tobago-example-demo/src/main/webapp/con...

Author: hnoeth
Date: Fri Jul 28 11:05:48 2017
New Revision: 1803265

URL: http://svn.apache.org/viewvc?rev=1803265&view=rev
Log:
TOBAGO-1767 tc:date: days in the past should have an specific CSS class
* get current date from server

Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/DateRenderer.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/DataAttributes.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.test.js
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-calendar.js

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/DateRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/DateRenderer.java?rev=1803265&r1=1803264&r2=1803265&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/DateRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/DateRenderer.java Fri Jul 28 11:05:48 2017
@@ -39,6 +39,8 @@ import org.slf4j.LoggerFactory;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 public class DateRenderer extends InRenderer {
 
@@ -53,6 +55,8 @@ public class DateRenderer extends InRend
 
     super.writeAdditionalAttributes(facesContext, writer, date);
     writer.writeAttribute(DataAttributes.PATTERN, date.getPattern(), true);
+    SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
+    writer.writeAttribute(DataAttributes.TODAY, sdf.format(new Date()), true);
     final DateTimeI18n dateTimeI18n = DateTimeI18n.valueOf(facesContext.getViewRoot().getLocale());
     writer.writeAttribute(DataAttributes.DATE_TIME_I18N, JsonUtils.encode(dateTimeI18n), true);
   }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/DataAttributes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/DataAttributes.java?rev=1803265&r1=1803264&r2=1803265&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/DataAttributes.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/DataAttributes.java Fri Jul 28 11:05:48 2017
@@ -181,6 +181,8 @@ public enum DataAttributes implements Ma
 
   TO_PAGE("data-tobago-to-page"),
 
+  TODAY("data-tobago-today"),
+
   TOGGLE("data-toggle"),
 
   TRANSITION("data-tobago-transition"),

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.test.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.test.js?rev=1803265&r1=1803264&r2=1803265&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.test.js (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.test.js Fri Jul 28 11:05:48 2017
@@ -15,25 +15,19 @@
  * limitations under the License.
  */
 
-function getToday() {
-  var now = new Date();
-  var dd = now.getDate();
-  var mm = now.getMonth() + 1;
-  var yyyy = now.getFullYear();
-  if (dd < 10) {
-    dd = '0' + dd
-  }
-  if (mm < 10) {
-    mm = '0' + mm
-  }
-  return dd + "." + mm + "." + yyyy;
+function getToday($dateField) {
+  var tobagoToday = $dateField.data("tobago-today");
+  var todayArray = tobagoToday.split("-");
+  return todayArray[2] + "." + todayArray[1] + "." + todayArray[0];
 }
 
 QUnit.test("date with label", function (assert) {
+  assert.expect(5);
+
   var $label = jQueryFrame("#page\\:mainForm\\:dNormal > label");
   var $dateField = jQueryFrame("#page\\:mainForm\\:dNormal\\:\\:field");
   var $dateButton = jQueryFrame("#page\\:mainForm\\:dNormal button");
-  var today = getToday();
+  var today = getToday($dateField);
 
   assert.equal($label.text(), "Date");
   assert.equal($dateField.val(), today);
@@ -42,6 +36,11 @@ QUnit.test("date with label", function (
   $dateButton.click();
 
   assert.equal($dateField.val(), today);
+
+  var $dayToday = jQueryFrame(".day.today");
+  assert.equal($dayToday.hasClass("past"), false);
+  assert.equal($dayToday.prevAll(".past").length, $dayToday.prevAll().length);
+
   $dateButton.click(); // IE11: close datetimepicker for next test
 });
 
@@ -91,7 +90,7 @@ QUnit.test("ajax", function (assert) {
   var $dateField = jQueryFrame("#page\\:mainForm\\:ajaxinput\\:\\:field");
   var $dateButton = jQueryFrame("#page\\:mainForm\\:ajaxinput button");
   var $outField = jQueryFrame("#page\\:mainForm\\:outputfield span");
-  var today = getToday();
+  var today = getToday($dateField);
 
   assert.equal($dateField.val(), "");
   assert.equal($outField.text(), "");

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-calendar.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-calendar.js?rev=1803265&r1=1803264&r2=1803265&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-calendar.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/js/tobago-calendar.js Fri Jul 28 11:05:48 2017
@@ -120,28 +120,33 @@ Tobago.DateTime.init = function (element
               'left': left + 'px'
             });
           }
-          Tobago.DateTime.addPastClass();
+          Tobago.DateTime.addPastClass($date);
         });
-        $date.parent().on('dp.update', function () {
+        $date.parent().on('dp.update', function ($date) {
           Tobago.DateTime.addPastClass();
         });
       });
 };
 
-Tobago.DateTime.addPastClass = function () {
-  var todayTimestamp = new Date(
-      new Date().getFullYear() + "-"
-      + ("0" + (new Date().getMonth() + 1)).slice(-2)
-      + "-" + new Date().getDate()
-  ).getTime();
+Tobago.DateTime.addPastClass = function ($date) {
+  var today = $date.data("tobago-today");
+  if (today.length === 10) {
+    var todayArray = today.split("-");
+    if (todayArray.length === 3) {
+      var year = todayArray[0];
+      var month = todayArray[1];
+      var day = todayArray[2];
+      var todayTimestamp = new Date(month + "/" + day + "/" + year).getTime();
 
-  jQuery(".bootstrap-datetimepicker-widget .datepicker-days td.day[data-day]").each(function () {
-    var day = jQuery(this);
-    var currentTimestamp = new Date(day.attr('data-day')).getTime();
-    if (currentTimestamp < todayTimestamp) {
-      day.addClass('past');
+      jQuery(".bootstrap-datetimepicker-widget .datepicker-days td.day[data-day]").each(function () {
+        var day = jQuery(this);
+        var currentTimestamp = new Date(day.attr('data-day')).getTime();
+        if (currentTimestamp < todayTimestamp) {
+          day.addClass('past');
+        }
+      });
     }
-  });
+  }
 };
 
 /*