JBoss Rich Faces SVN: r3204 - branches/3.1.x.
by richfaces-svn-commits@lists.jboss.org
Author: afrancuzov
Date: 2007-10-03 04:42:28 -0400 (Wed, 03 Oct 2007)
New Revision: 3204
Modified:
branches/3.1.x/release notes.txt
Log:
Modified: branches/3.1.x/release notes.txt
===================================================================
--- branches/3.1.x/release notes.txt 2007-10-02 23:23:29 UTC (rev 3203)
+++ branches/3.1.x/release notes.txt 2007-10-03 08:42:28 UTC (rev 3204)
@@ -1,5 +1,15 @@
Release Notes - RichFaces - Version 3.1.1
** Bug
+ * [RF-403] - Tab panel should not apply a few tabs with the same names
+ * [RF-535] - Problem with cellspacing and cellpadding when border-collapse: collapse
+ * [RF-765] - AJAX Tree attributes
+ * [RF-843] - Tab Panel doesn't switches except client mode
+ * [RF-881] - rich:tree - showConnectingLines problem in Firefox
+ * [RF-890] - Tooltip makes white shadows in IE
+ * [RF-895] - inputNumberSlider and IE: Lose value by using back buttons
+ * [RF-900] - Panel menu doesn't submit the form if action not specified
+ * [RF-901] - Panel Menu Item : reRender doesn't work
+ * [RF-905] - SuggestionBox: font's lowered on hover
* [RF-894] - PanelMenu: chevron icons are inconsistent with the spec
* [RF-910] - Tooltip javascript error
* [RF-945] - calendar. Selection doesn't applied with a4j:support inside calendar
@@ -125,8 +135,9 @@
* [RF-242] - Menu Group. can't customize icons
* [RF-243] - Action Listener isn't invoked by DEFAULT on the menuItem
* [RF-245] - If there is only one item on the last page of a datatable, datascroller then the next buttons disappear
+
+
-
** Feature Request
* [RF-4] - Add expression or the current row index of rich:dataTable
* [RF-10] - Allow ajaxSingle for suggestionBox to make it possible to use other fields values in the suggestion action
17 years, 2 months
JBoss Rich Faces SVN: r3203 - branches/3.1.x/framework/impl/src/main/java/org/ajax4jsf/resource.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-10-02 19:23:29 -0400 (Tue, 02 Oct 2007)
New Revision: 3203
Modified:
branches/3.1.x/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceLifecycle.java
Log:
Fix for a http://jira.jboss.org/jira/browse/RF-1056 issue.
Modified: branches/3.1.x/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceLifecycle.java
===================================================================
--- branches/3.1.x/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceLifecycle.java 2007-10-02 18:05:21 UTC (rev 3202)
+++ branches/3.1.x/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceLifecycle.java 2007-10-02 23:23:29 UTC (rev 3203)
@@ -135,6 +135,8 @@
}
}
}
+ // Fix for a http://jira.jboss.org/jira/browse/RF-1056
+ if(facesContext.getResponseComplete()) return;
// create "dummy" viewRoot, to avoid problems in phase listeners.
UIViewRoot root = new UIViewRoot();
root.setViewId(resource.getKey());
@@ -154,6 +156,8 @@
}
}
}
+ // Fix for a http://jira.jboss.org/jira/browse/RF-1056
+ if(facesContext.getResponseComplete()) return;
// Invoke before render view phase listeners
renderViewEvent = new PhaseEvent(facesContext,
PhaseId.RENDER_RESPONSE, this);
17 years, 2 months
JBoss Rich Faces SVN: r3202 - in trunk: ui/dataTable/src/main/templates/org/richfaces and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-10-02 14:05:21 -0400 (Tue, 02 Oct 2007)
New Revision: 3202
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java
trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataGrid.jspx
trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx
Log:
http://jira.jboss.com/jira/browse/RF-1033
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java 2007-10-02 17:09:50 UTC (rev 3201)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java 2007-10-02 18:05:21 UTC (rev 3202)
@@ -197,7 +197,7 @@
"frame", "border", "cellspacing", "cellpadding", "summary",
"bgcolor", "usemap", "enctype", "accept-charset", "accept",
"target", "charset", "coords", "hreflang", "rel", "rev",
- "shape", "disabled", "readonly", "ismap"
+ "shape", "disabled", "readonly", "ismap", "align"
};
Modified: trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataGrid.jspx
===================================================================
--- trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataGrid.jspx 2007-10-02 17:09:50 UTC (rev 3201)
+++ trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataGrid.jspx 2007-10-02 18:05:21 UTC (rev 3202)
@@ -15,8 +15,10 @@
<f:clientid var="clientId"/>
<table id="#{clientId}"
class="dr-table rich-table #{component.attributes['styleClass']}"
- x:passThruWithExclusions="value,name,type,id,class"
>
+ <f:call name="utils.encodePassThruWithExclusions">
+ <f:parameter value="value,name,type,id,class" />
+ </f:call>
<f:call name="encodeCaption" />
<colgroup span="#{component.attributes['columns']}">
</colgroup>
Modified: trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx
===================================================================
--- trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx 2007-10-02 17:09:50 UTC (rev 3201)
+++ trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx 2007-10-02 18:05:21 UTC (rev 3202)
@@ -17,9 +17,10 @@
<f:clientid var="clientId"/>
<table id="#{clientId}"
class="dr-table rich-table #{component.attributes['styleClass']}"
- bgcolor="#{component.attributes['bgcolor']}"
- x:passThruWithExclusions="value,name,type,id,class"
- >
+ >
+ <f:call name="utils.encodePassThruWithExclusions">
+ <f:parameter value="value,name,type,id,class" />
+ </f:call>
<f:call name="encodeTableStructure"/>
<tbody>
<vcp:body>
17 years, 2 months
JBoss Rich Faces SVN: r3201 - trunk/framework/impl/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-10-02 13:09:50 -0400 (Tue, 02 Oct 2007)
New Revision: 3201
Modified:
trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java
Log:
RF-1051, RF-843, RF-1032
Modified: trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java 2007-10-02 17:09:12 UTC (rev 3200)
+++ trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java 2007-10-02 17:09:50 UTC (rev 3201)
@@ -84,6 +84,7 @@
}
public void queueEvent(FacesEvent event) {
+
if (event instanceof SwitchablePanelSwitchEvent && this.equals(event.getComponent())) {
if (isImmediate()) {
event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
@@ -164,9 +165,9 @@
if (isImmediate()) {
validate(context);
- if (!isValid()) {
- context.renderResponse();
- }
+// if (!isValid()) {
+// context.renderResponse();
+// }
//UISwitchablePanel has a special behavior
//it stops processing after APPLY_REQUEST_VALUES phase
17 years, 2 months
JBoss Rich Faces SVN: r3200 - in trunk/ui/tabPanel/src/main/java/org/richfaces: renderkit and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-10-02 13:09:12 -0400 (Tue, 02 Oct 2007)
New Revision: 3200
Modified:
trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java
Log:
RF-1051, RF-843, RF-1032
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2007-10-02 16:09:05 UTC (rev 3199)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2007-10-02 17:09:12 UTC (rev 3200)
@@ -22,10 +22,13 @@
package org.richfaces.component;
import java.util.Iterator;
+import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
@@ -60,7 +63,7 @@
if (object != null) {
return object;
}
-
+
return ((UITab) component).getName();
}
@@ -82,7 +85,7 @@
* @return selectedTab value from local variable or value bindings
*/
public Object getSelectedTab() {
- return getValue();
+ return getValue();
}
/**
@@ -113,7 +116,21 @@
return state;
}
-
+
+ public UITab getTabWithName(Object tabName){
+
+ List children = getChildren();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ UIComponent childComponent = (UIComponent) iterator.next();
+
+ if(childComponent instanceof UITab && ((UITab)childComponent).getName().equals(tabName)){
+ return (UITab)childComponent;
+ }
+ }
+
+ return null;
+ }
+
public void restoreState(FacesContext context, Object state) {
Object[] states = (Object[]) state;
super.restoreState(context, states[0]);
@@ -185,17 +202,38 @@
public abstract void setHeaderClass(String value);
+
+
public void queueEvent(FacesEvent event) {
+
+ FacesEvent processedEvent = event;
+
if (event instanceof SwitchablePanelSwitchEvent && this.equals(event.getComponent())) {
-
SwitchablePanelSwitchEvent switchEvent = (SwitchablePanelSwitchEvent) event;
- UIComponent component = switchEvent.getEventSource();
- if((component instanceof UITab) && ((UITab)component).isImmediate()){
+ UIComponent component = switchEvent.getEventSource();
+ UITab savedTab = getTabWithName(getValue());
+ if((component instanceof UITab) && ((UITab)savedTab).isImmediate() || isImmediate()){
setImmediate(true);
}else{
setImmediate(false);
}
}
- super.queueEvent(event);
+ // redefine phaseId of ActionEvent RF-843
+ if(event instanceof ActionEvent ){
+ UIComponent component = event.getComponent();
+ UITab savedTab = getTabWithName(getValue());
+
+ if((component instanceof UITab) && ((UITab)savedTab).isImmediate() || isImmediate()){
+ setImmediate(true);
+ processedEvent.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ }else{
+ setImmediate(false);
+ processedEvent.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ }
+ }
+
+ super.queueEvent(processedEvent);
}
+
+
}
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java 2007-10-02 16:09:05 UTC (rev 3199)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java 2007-10-02 17:09:12 UTC (rev 3200)
@@ -99,12 +99,14 @@
}
} else {
String newValue = (String) requestParameterMap.get(clientId);
+
if (null != newValue) {
- new SwitchablePanelSwitchEvent(panel, newValue, null).queue();
+ new SwitchablePanelSwitchEvent(panel, newValue, null).queue();
}
}
}
+
private static final TabInfoCollector collector = new TabInfoCollector() {
private final JSReference JSR_ACTIVE_CLASS = new JSReference("activeClass");
private final JSReference JSR_ID = new JSReference("id");
@@ -185,7 +187,7 @@
}
protected String getValueAsString(FacesContext context, UITabPanel tabPanel) {
- return getUtils().getValueAsString(context, tabPanel);
+ return getUtils().getValueAsString(context, tabPanel);
}
private Object checkValue(Object value) {
@@ -276,6 +278,7 @@
ComponentVariables componentVariables = ComponentsVariableResolver.getVariables(this, tabPanel);
tabPanel.setRenderedValue(null);
+
Object checkedValue = checkValue(tabPanel.getValue());
UITabPanel pane = tabPanel;
@@ -297,7 +300,6 @@
"] has no enabled or rendered tab with such name. Tab: " + activeTab.getName() +
" will be used instead!";
context.getExternalContext().log(message);
-
tabPanel.setRenderedValue(activeTab.getName());
} else if (checkedValue == null) {
tabPanel.setRenderedValue(activeTab.getName());
17 years, 2 months
JBoss Rich Faces SVN: r3199 - in trunk/ui/scrollableDataTable/src/main: resources/org/richfaces/renderkit/html/css and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2007-10-02 12:09:05 -0400 (Tue, 02 Oct 2007)
New Revision: 3199
Modified:
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js
trunk/ui/scrollableDataTable/src/main/resources/org/richfaces/renderkit/html/css/scrollable-data-table.xcss
Log:
RF-938
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js 2007-10-02 15:19:20 UTC (rev 3198)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js 2007-10-02 16:09:05 UTC (rev 3199)
@@ -399,7 +399,6 @@
this.columnSplitter = new ClientUI.common.box.Box(this.gridId +":cs", this.grid.getElement());
this.columnSplitter.makeAbsolute();
this.columnSplitter.setWidth(10);
- this.columnSplitter.hide();
},
adjustScrollPosition: function(pos) {
this.contentBox.moveToX(this.grid.getColumnsFrozenWidth()-pos);
Modified: trunk/ui/scrollableDataTable/src/main/resources/org/richfaces/renderkit/html/css/scrollable-data-table.xcss
===================================================================
--- trunk/ui/scrollableDataTable/src/main/resources/org/richfaces/renderkit/html/css/scrollable-data-table.xcss 2007-10-02 15:19:20 UTC (rev 3198)
+++ trunk/ui/scrollableDataTable/src/main/resources/org/richfaces/renderkit/html/css/scrollable-data-table.xcss 2007-10-02 16:09:05 UTC (rev 3199)
@@ -88,6 +88,7 @@
border-right: 1px dashed;
cursor: col-resize;
z-index: 100;
+ display: none;
}
/**
17 years, 2 months
JBoss Rich Faces SVN: r3198 - branches/3.1.x/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-10-02 11:19:20 -0400 (Tue, 02 Oct 2007)
New Revision: 3198
Modified:
branches/3.1.x/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
Log:
http://jira.jboss.com/jira/browse/RF-1022
Modified: branches/3.1.x/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
===================================================================
--- branches/3.1.x/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2007-10-02 14:59:54 UTC (rev 3197)
+++ branches/3.1.x/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2007-10-02 15:19:20 UTC (rev 3198)
@@ -153,17 +153,6 @@
this.upDown = 0;
},
- preventBlur:function(event) {
- Event.stop(event);
- },
-
- preventBlurByScroll: function() {
- Event.observe(this.update, "click", this.preventBlur);
- },
-
- enableBlurByScroll: function() {
- Event.stopObserving(this.update, "click", this.preventBlur);
- },
show: function() {
if ("SAFARI" == RichFaces.navigatorType()) {
this.wasScroll = false;
@@ -175,8 +164,6 @@
if (Element.getStyle(this.update, 'display')
== 'none') this.options.onShow(this.element, this.update, this.options);
this.disableSubmit();
- this.preventBlurByScroll();
-
},
hide: function() {
@@ -188,7 +175,6 @@
Event.stopObserving(this.overflow, "scroll", this.onScrollListener)
}
this.stopIndicator();
- this.enableBlurByScroll();
if (Element.getStyle(this.update, 'display')
!= 'none') this.options.onHide(this.element, this.update, this.options);
this.enableSubmit();
@@ -394,10 +380,17 @@
offsets["x"] = 0;
offsets["y"] = 0;
}
- if (event.clientX > offsets["x"] && event.clientX
- < (this.update.clientWidth + offsets["x"])) {
- if (event.clientY > (offsets["y"] - this.update.clientHeight)
- && event.clientY < offsets["y"]) {
+
+ var x = event.clientX +
+ document.body.scrollLeft +
+ document.documentElement.scrollLeft;
+
+ var y = event.clientY +
+ document.body.scrollTop+
+ document.documentElement.scrollTop;
+
+ if (x > offsets["x"] && x < (this.update.clientWidth + offsets["x"])) {
+ if (y > (offsets["y"] - this.update.clientHeight) && y < offsets["y"]) {
this.element.focus();
return;
}
17 years, 2 months
JBoss Rich Faces SVN: r3197 - trunk/ui/treeTable/design/funcspec.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2007-10-02 10:59:54 -0400 (Tue, 02 Oct 2007)
New Revision: 3197
Added:
trunk/ui/treeTable/design/funcspec/FuncSpec - Tree Table Component.doc
Log:
http://jira.jboss.com/jira/browse/RF-1054
Added: trunk/ui/treeTable/design/funcspec/FuncSpec - Tree Table Component.doc
===================================================================
(Binary files differ)
Property changes on: trunk/ui/treeTable/design/funcspec/FuncSpec - Tree Table Component.doc
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
17 years, 2 months
JBoss Rich Faces SVN: r3195 - in trunk: samples/calendar-sample/src/main/java/org/richfaces and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: akushunin
Date: 2007-10-02 10:57:41 -0400 (Tue, 02 Oct 2007)
New Revision: 3195
Modified:
trunk/framework/api/src/main/java/org/richfaces/model/CalendarDataModelItem.java
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelItemImpl.java
trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
Log:
RF-1031
Modified: trunk/framework/api/src/main/java/org/richfaces/model/CalendarDataModelItem.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/model/CalendarDataModelItem.java 2007-10-02 14:52:30 UTC (rev 3194)
+++ trunk/framework/api/src/main/java/org/richfaces/model/CalendarDataModelItem.java 2007-10-02 14:57:41 UTC (rev 3195)
@@ -55,5 +55,14 @@
/**
*@return tool tip data that will be used in �batch� tooltip loading mode.
**/
- public Object getToolTip();
+ public Object getToolTip();
+
+ /**
+ *@return day of the month on which data must be shown.
+ **/
+ public int getDay();
+
}
+
+
+
Modified: trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java
===================================================================
--- trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java 2007-10-02 14:52:30 UTC (rev 3194)
+++ trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java 2007-10-02 14:57:41 UTC (rev 3195)
@@ -22,6 +22,7 @@
package org.richfaces;
import java.text.DateFormat;
+import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
@@ -63,8 +64,10 @@
data.put("enLabel", enFormatter.format(date));
data.put("frLabel", frFormatter.format(date));
data.put("deLabel", deFormatter.format(date));
+ /*Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ item.setDay(c.get(Calendar.DAY_OF_MONTH));*/
-
if (new Random().nextInt(10) > 5) {
item.setEnabled(true);
} else {
Modified: trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelItemImpl.java
===================================================================
--- trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelItemImpl.java 2007-10-02 14:52:30 UTC (rev 3194)
+++ trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelItemImpl.java 2007-10-02 14:57:41 UTC (rev 3195)
@@ -33,8 +33,18 @@
private Object data;
private String styleClass;
private Object toolTip;
+ private int day;
private boolean enabled = true;
+
+ public int getDay() {
+ return day;
+ }
+
+ public void setDay(int day) {
+ this.day = day;
+ }
+
/* (non-Javadoc)
* @see org.richfaces.component.CalendarDataModelItem#getData()
*/
@@ -97,5 +107,5 @@
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
-
+
}
Modified: trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
===================================================================
--- trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js 2007-10-02 14:52:30 UTC (rev 3194)
+++ trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js 2007-10-02 14:57:41 UTC (rev 3195)
@@ -941,13 +941,16 @@
if (this.daysData && this.daysData.index[currentYear+'-'+currentMonth]!=undefined)
{
var idx = this.daysData.index[currentYear+'-'+currentMonth];
- var firstDay = this.daysData.days[idx].day;
- while (dayCounter<firstDay)
+ if (this.daysData.startDate.getFullYear()==currentYear && this.daysData.startDate.getMonth()==currentMonth)
{
- this.days.push({day:dayCounter, isWeekend:this.isWeekend(p%7), _month:month});
+ var firstDay = firstDay=(this.daysData.days[idx].day ? this.daysData.days[idx].day : this.daysData.startDate.getDate());
+ while (dayCounter<firstDay)
+ {
+ this.days.push({day:dayCounter, isWeekend:this.isWeekend(p%7), _month:month});
- dayCounter++;
- p++;
+ dayCounter++;
+ p++;
+ }
}
var len = this.daysData.days.length;
17 years, 2 months