From fcc7895d4bbc2e37b473708b00912ecadbf1722a Mon Sep 17 00:00:00 2001
From: Jonatan Kronqvist
Date: Tue, 15 Apr 2014 10:18:21 +0300
Subject: Update release-notes for 7.2.0.beta1
Change-Id: I1232c72c3dd8eca5d6223aa9858dac22a5f7817e
---
WebContent/release-notes.html | 90 ++++++++++++-------------------------------
1 file changed, 24 insertions(+), 66 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 38d9f5211c..01cf665c5d 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -134,66 +134,24 @@
enhancements. Below is a list of the most notable changes:
- - Server push (Use the @Push annotation to
- enable push for a UI)
-
- - Server polling using UI.setPollInterval()
- - Enhanced debug window
- - Internet Explorer 10 support
- - Sass compiler improvements: arithmetics, @content
- - Dynamic CSS injection
- - Support for SCSS/CSS files in all add-ons (Use Vaadin-Stylesheet
- in the manifest)
-
- - Calendar is included in the core framework
- - ProgressBar provides progress indication
- without polling (separated from ProgressIndicator)
- - Tooltip and loading indicator delays configurable
- on server side
- - The range of a DateField can be limited
-
- - Window has maximize/restore controls
- - UI and VaadinSession provide access()
- to access the UI and session while holding the needed
- lock
- - A new @VaadinServletConfiguration annotation
- for configuring servlet parameters
-
- - WAI-ARIA support for form fields, Button,
- and Tree
- - The behavior of Property.toString() can be
- toggled using the legacyPropertyToString init
- parameter
-
- - Default alignment can be set for layout components
- - FieldGroup supports SQL date fields and date
- field creation
- - Converter.convertToModel/convertFromModel
- now gets an additional parameter describing the target
- type
- - The browser page can be reloaded programmatically
- using Page.reload()
-
- - The VaadinServlet/VaadinPortlet and VaadinService
- classes have been refactored
-
- - Several locking related fixes
- - Client compiler dependencies are packaged as a
- separate jar
- - DefaultWidgetSet is even more optimized (using
- compiler parameter -XenableClosureCompiler)
-
- - Java assert statements have been added to
- critical code sections. Start JVM with -ea to
- use.
-
- - StateChangeEvent.isInitialState()
- indicates if event is the first for a connector
- - ClientConnector.isAttached()
- indicates if connector is attached
- - Container.Filterable now contains a getContainerFilters()
- method
- - TableQuery now supports schemas and catalogs
+ - Internet Explorer 11 support
+ - Window Phone 8.1 support
+ - Long polling support through Atmosphere 2
+ - Font icon support
+ - Tomcat 8 support
+ - Wildfly 8 support
+ - Websocket support for Tomcat 8, Glassfish 4, Jetty 9.1, Wildfly 8
+ - TestBench 4 support
+ - GWT 2.6 compatibility
+ - Widget set size reduction
+ - Widget set compilation speed improvement by collapsing all permutations
+ - New built-in converters: StringToBigDecimal, StringToLong
+ - New built-in support for Date in communication
+ - WAI-ARIA improvements: Window, Notification, TabSheet
+ - Sass compiler is a separate project
+ - Support for @OnStateChange for easier state handling
+ - Reload events for UIs with @PreserveOnRefresh
+ - Responsive layouts
Tools have been updated for Vaadin @version-minor@ with
@@ -620,12 +578,12 @@
- - Mozilla Firefox 18-24
- - Mozilla Firefox 17 ESR
- - Internet Explorer 8-10
- - Safari 6
- - Opera 12,16
- - Google Chrome 23-29
+ - Mozilla Firefox 18-28
+ - Mozilla Firefox 17 ESR, 24 ESR
+ - Internet Explorer 8-11
+ - Safari 6-7
+ - Opera 12, 16-20
+ - Google Chrome 23-34
--
cgit v1.2.3
From 434a2628cf23c72b329d18ee05a6fc03b13685dd Mon Sep 17 00:00:00 2001
From: Jonatan Kronqvist
Date: Fri, 11 Apr 2014 15:57:07 +0300
Subject: Add a section on incompatible changes to release-notes (#13502)
Change-Id: I73cc9c7b5509dff0cb5376af9bf4b0ef572add05
---
WebContent/release-notes.html | 72 +++++++++++++++++++++++++++++++++++--------
1 file changed, 60 insertions(+), 12 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 01cf665c5d..dccc82e1bf 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -46,6 +46,12 @@
@version@
Enhancements in Vaadin
@version-minor@
+ Incompatible changes in
+ @version-minor@
+ Behavior altering
+ changes in @version-minor@
+ Known issues in
+ @version-minor@
Limitations in
@version-minor@
Vaadin Installation
@@ -76,44 +82,44 @@
href="http://vaadin.com/download/release/@version-minor@/@version-minor@.0/release-notes.html">Release
Notes for Vaadin @version-minor@.0.
-
+
Security fixes in Vaadin Framework 7.1.11
-
+
- Vaadin 7.1.11 fixes two security issues discovered during internal review.
+ Vaadin 7.1.11 fixes two security issues discovered during internal review.
Escaping of OptionGroup item icon URLs
- The issue affects OptionGroup with item icons. Proper escaping of the
- src-attribute on the client side was not ensured when using icons for
+ The issue affects OptionGroup with item icons. Proper escaping of the
+ src-attribute on the client side was not ensured when using icons for
OptionGroup items. This could potentially, in certain situations, allow
- a malicious user to inject content, such as javascript, in order to
+ a malicious user to inject content, such as javascript, in order to
perform a cross-site scripting (XSS) attack.
In order for an application to be vulnerable, user provided input must
- be used to form a URL used to display an icon for an OptionGroup item,
+ be used to form a URL used to display an icon for an OptionGroup item,
when showing that Option Group to other users.
The vulnerability has been classified as moderate, due to it's limited
- application.
+ application.
Escaping of URLs in Util.getAbsoluteUrl()
The client side Util.getAbsoluteUrl() did not ensure proper escaping
of the given URL. This could potentially, in certain situations, allow
- a malicious user to inject content, such as javascript, in order to
+ a malicious user to inject content, such as javascript, in order to
perform a cross-site scripting (XSS) attack.
The method is used internally by the framework in such a manner that it
is unlikely this attack vector can be utilized in practice. However,
- third party components, or future use of the method, could make an
+ third party components, or future use of the method, could make an
attack viable.
The vulnerability has been classified as moderate, due to it's limited
- application.
+ application.
-
+
Change log for Vaadin @version@
This release includes the following closed issues:
@@ -182,6 +188,48 @@
Notes for Vaadin 7.0.0.
+ Incompatible changes
+
+ - It is assumed that the UI will no longer be used after Page.setLocation
+ is called. Do not use this to start downloads.
+ - The portlet requests class VaadinGateinRequest is now called
+ VaadinGateInRequest
+ - The JSON library has been changed from org.json to the json implementation
+ from the Android SDK. They are 99% compatible.
+ - StringToNumberConverter has been removed in favor of more specific
+ converters such as StringToBigDecimalConverter.
+ - (internal) Atmosphere has been updated from version 1.x to 2.x. These
+ are not 100% compatible.
+ - (internal) There is no longer support for "multiple variable bursts"
+ in the UIDL communication.
+
+ Behavior altering changes
+
+ - Default push fallback is now long-polling
+ - VerticalLayout and HorizontalLayout.replaceComponent now applies old
+ component parameters (e.g. expand ratio) to the new component. This is
+ now consistent between all layouts in the framework, where relevant
+ properties are applied to the replacement.
+ - All GWT permutations are collapsed when using DefaultWidgetSet. To use
+ separate permutations, inherit Vaadin instead of DefaultWidgetSet and
+ add the needed entry-point.
+ - Requests to "/context;jsessionid=xyz" are redirected to
+ "/context/;jsessionid=xyz" which is against specifications but based
+ on how jsessionid is used
+ - Adding a ValueChangeListener to a component will make it immediate
+ - ComboBox is immediate by default
+
+
+ Known issues
+
+ - Not all features are implemented for devices using pointer events.
+ - Push reconnecting does not work in all situations when
+
+ - using Firefox and streaming
+ - using IE8-11 and long-polling
+
+
+
Limitations
- It is currently not possible to specify font-size
--
cgit v1.2.3
From e3fe34dcd9c3414b5fc96819c68899051346872c Mon Sep 17 00:00:00 2001
From: Jonatan Kronqvist
Date: Wed, 16 Apr 2014 08:33:18 +0300
Subject: Add WebSphere Portal to supported portals in release notes
Change-Id: I2ffadb382d1c8ca42f1525c24c51a441a67404f6
---
WebContent/release-notes.html | 1 +
1 file changed, 1 insertion(+)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index dccc82e1bf..7de723629f 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -615,6 +615,7 @@
- Liferay Portal 5.2-6
- GateIn Portal 3
- eXo Platform 3
+ - IBM WebSphere Portal 8
--
cgit v1.2.3
From cf8b76532a05dcf5bf1afe8997c969c943017f69 Mon Sep 17 00:00:00 2001
From: Juuso Valli
Date: Thu, 24 Apr 2014 13:34:05 +0300
Subject: Fix missing TreeTable column lines in IE8 (#12989)
Change-Id: Iddc6ecd5f455d28a43a67cdbf22cf81dbf3a6a5b
---
WebContent/VAADIN/themes/base/treetable/treetable.scss | 1 -
1 file changed, 1 deletion(-)
(limited to 'WebContent')
diff --git a/WebContent/VAADIN/themes/base/treetable/treetable.scss b/WebContent/VAADIN/themes/base/treetable/treetable.scss
index 934e66097c..e4d41eefa8 100644
--- a/WebContent/VAADIN/themes/base/treetable/treetable.scss
+++ b/WebContent/VAADIN/themes/base/treetable/treetable.scss
@@ -26,7 +26,6 @@
.#{$primaryStyleName} .v-table-row .v-table-cell-content,
.#{$primaryStyleName} .v-table-row-odd .v-table-cell-content {
- position: relative;
z-index: 10;
}
--
cgit v1.2.3
From 16bcacd5eb5d56491b4fb4777bab950880b644f3 Mon Sep 17 00:00:00 2001
From: Tapio Aali
Date: Tue, 29 Apr 2014 15:56:43 +0300
Subject: Modified vaadinBootstrap to send v-loc as POST instead of GET
(#13685).
Since there seems to be no difference, moved also almost all other
parameters from GET to POST for consistency.
Change-Id: I528963c4c832339a9853fbee97cebcb8fabb35e1
---
WebContent/VAADIN/vaadinBootstrap.js | 50 +++++++++++++++++++-----------------
1 file changed, 26 insertions(+), 24 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/VAADIN/vaadinBootstrap.js b/WebContent/VAADIN/vaadinBootstrap.js
index bab759b812..fc0fb9b948 100644
--- a/WebContent/VAADIN/vaadinBootstrap.js
+++ b/WebContent/VAADIN/vaadinBootstrap.js
@@ -108,29 +108,29 @@
// No special url defined, use the same URL that loaded this page (without the fragment)
url = window.location.href.replace(/#.*/,'');
}
- url += ((/\?/).test(url) ? "&" : "?") + "v-browserDetails=1";
+ // Timestamp to avoid caching
+ url += ((/\?/).test(url) ? "&" : "?") + "v-" + (new Date()).getTime();
+
+ var params = "v-browserDetails=1";
var rootId = getConfig("v-rootId");
if (rootId !== undefined) {
- url += "&v-rootId=" + rootId;
+ params += "&v-rootId=" + rootId;
}
// Tell the UI what theme it is configured to use
var theme = getConfig('theme');
if (theme !== undefined) {
- url += '&theme=' + encodeURIComponent(theme);
+ params += '&theme=' + encodeURIComponent(theme);
}
- url += "&v-appId=" + appId;
+ params += "&v-appId=" + appId;
var extraParams = getConfig('extraParams')
if (extraParams !== undefined) {
- url += extraParams;
+ params += extraParams;
}
- url += '&' + vaadin.getBrowserDetailsParameters(appId);
-
- // Timestamp to avoid caching
- url += '&v-' + (new Date()).getTime();
+ params += '&' + vaadin.getBrowserDetailsParameters(appId);
var r;
try {
@@ -168,7 +168,9 @@
}
}
};
- r.send(null);
+ // send parameters as POST data
+ r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ r.send(params);
log('sending request to ', url);
};
@@ -239,8 +241,8 @@
},
getBrowserDetailsParameters: function(parentElementId) {
// Screen height and width
- var url = 'v-sh=' + window.screen.height;
- url += '&v-sw=' + window.screen.width;
+ var params = 'v-sh=' + window.screen.height;
+ params += '&v-sw=' + window.screen.width;
// Window height and width
var cw = 0;
@@ -254,12 +256,12 @@
cw = document.documentElement.clientWidth;
ch = document.documentElement.clientHeight;
}
- url += '&v-cw=' + cw + '&v-ch=' + ch;
+ params += '&v-cw=' + cw + '&v-ch=' + ch;
var d = new Date();
- url += '&v-curdate=' + d.getTime();
+ params += '&v-curdate=' + d.getTime();
var tzo1 = d.getTimezoneOffset(); // current offset
var dstDiff = 0;
@@ -276,29 +278,29 @@
}
// Time zone offset
- url += '&v-tzo=' + tzo1;
+ params += '&v-tzo=' + tzo1;
// DST difference
- url += '&v-dstd=' + dstDiff;
+ params += '&v-dstd=' + dstDiff;
// Raw time zone offset
- url += '&v-rtzo=' + rtzo;
+ params += '&v-rtzo=' + rtzo;
// DST in effect?
- url += '&v-dston=' + (tzo1 != rtzo);
+ params += '&v-dston=' + (tzo1 != rtzo);
var pe = document.getElementById(parentElementId);
if (pe) {
- url += '&v-vw=' + pe.offsetWidth;
- url += '&v-vh=' + pe.offsetHeight;
+ params += '&v-vw=' + pe.offsetWidth;
+ params += '&v-vh=' + pe.offsetHeight;
}
// Location
- url += '&v-loc=' + encodeURIComponent(location.href);
+ params += '&v-loc=' + encodeURIComponent(location.href);
// Window name
if (window.name) {
- url += '&v-wn=' + encodeURIComponent(window.name);
+ params += '&v-wn=' + encodeURIComponent(window.name);
}
// Detect touch device support
@@ -313,10 +315,10 @@
}
if (supportsTouch) {
- url += "&v-td=1";
+ params += "&v-td=1";
}
- return url;
+ return params;
}
};
--
cgit v1.2.3
From c98286e22c32b56a75b21d629c8b5968856d1ae1 Mon Sep 17 00:00:00 2001
From: Denis Anisimov
Date: Thu, 13 Mar 2014 08:56:31 +0200
Subject: Set explicit left alignment instead of removing text-align style
(#13399).
Change-Id: I3407555739ff443055e2e61aa14327d44a65cd8e
---
WebContent/VAADIN/themes/tests-table/styles.css | 5 ++
client/src/com/vaadin/client/ui/VScrollTable.java | 45 +++++------
.../components/table/LeftColumnAlignment.java | 90 ++++++++++++++++++++++
.../components/table/LeftColumnAlignmentTest.java | 58 ++++++++++++++
4 files changed, 171 insertions(+), 27 deletions(-)
create mode 100644 WebContent/VAADIN/themes/tests-table/styles.css
create mode 100644 uitest/src/com/vaadin/tests/components/table/LeftColumnAlignment.java
create mode 100644 uitest/src/com/vaadin/tests/components/table/LeftColumnAlignmentTest.java
(limited to 'WebContent')
diff --git a/WebContent/VAADIN/themes/tests-table/styles.css b/WebContent/VAADIN/themes/tests-table/styles.css
new file mode 100644
index 0000000000..78193c0982
--- /dev/null
+++ b/WebContent/VAADIN/themes/tests-table/styles.css
@@ -0,0 +1,5 @@
+@import url(../reindeer/legacy-styles.css);
+
+.v-table-footer-container, .v-table-cell-wrapper {
+ text-align: center;
+}
diff --git a/client/src/com/vaadin/client/ui/VScrollTable.java b/client/src/com/vaadin/client/ui/VScrollTable.java
index 38f8ff8644..b0cd614e42 100644
--- a/client/src/com/vaadin/client/ui/VScrollTable.java
+++ b/client/src/com/vaadin/client/ui/VScrollTable.java
@@ -3843,7 +3843,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
"right");
break;
default:
- DOM.setStyleAttribute(captionContainer, "textAlign", "");
+ DOM.setStyleAttribute(captionContainer, "textAlign", "left");
break;
}
}
@@ -5407,17 +5407,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
} else {
container.setInnerText(text);
}
- if (align != ALIGN_LEFT) {
- switch (align) {
- case ALIGN_CENTER:
- container.getStyle().setProperty("textAlign", "center");
- break;
- case ALIGN_RIGHT:
- default:
- container.getStyle().setProperty("textAlign", "right");
- break;
- }
- }
+ setAlign(align, container);
setTooltip(td, description);
td.appendChild(container);
@@ -5455,6 +5445,21 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
}
+ private void setAlign(char align, final Element container) {
+ switch (align) {
+ case ALIGN_CENTER:
+ container.getStyle().setProperty("textAlign", "center");
+ break;
+ case ALIGN_LEFT:
+ container.getStyle().setProperty("textAlign", "left");
+ break;
+ case ALIGN_RIGHT:
+ default:
+ container.getStyle().setProperty("textAlign", "right");
+ break;
+ }
+ }
+
protected void initCellWithWidget(Widget w, char align,
String style, boolean sorted, final TableCellElement td) {
final Element container = DOM.createDiv();
@@ -5471,21 +5476,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets,
td.setClassName(className);
container.setClassName(VScrollTable.this.getStylePrimaryName()
+ "-cell-wrapper");
- // TODO most components work with this, but not all (e.g.
- // Select)
- // Old comment: make widget cells respect align.
- // text-align:center for IE, margin: auto for others
- if (align != ALIGN_LEFT) {
- switch (align) {
- case ALIGN_CENTER:
- container.getStyle().setProperty("textAlign", "center");
- break;
- case ALIGN_RIGHT:
- default:
- container.getStyle().setProperty("textAlign", "right");
- break;
- }
- }
+ setAlign(align, container);
td.appendChild(container);
getElement().appendChild(td);
// ensure widget not attached to another element (possible tBody
diff --git a/uitest/src/com/vaadin/tests/components/table/LeftColumnAlignment.java b/uitest/src/com/vaadin/tests/components/table/LeftColumnAlignment.java
new file mode 100644
index 0000000000..e783951d86
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/table/LeftColumnAlignment.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.components.table;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.Table.Align;
+
+/**
+ * Test UI for issue #13399 : Left alignment should not be set explicitly
+ * instead of relying on default behavior
+ *
+ * @author Vaadin Ltd
+ */
+@Theme("tests-table")
+public class LeftColumnAlignment extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final Table table = new Table();
+
+ BeanItemContainer container = new BeanItemContainer(
+ Bean.class);
+ Bean bean = new Bean();
+ bean.setName("property");
+ container.addBean(bean);
+ table.setContainerDataSource(container);
+
+ table.setFooterVisible(true);
+
+ table.setWidth(100, Unit.PIXELS);
+
+ table.setColumnAlignment("name", Align.RIGHT);
+
+ addComponent(table);
+
+ Button button = new Button("Align to Left");
+ button.addClickListener(new ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ table.setColumnAlignment("name", Align.LEFT);
+ }
+ });
+ addComponent(button);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Left alignment should not be set explicitly instead of relying on default behavior";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 13399;
+ }
+
+ public static class Bean {
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/table/LeftColumnAlignmentTest.java b/uitest/src/com/vaadin/tests/components/table/LeftColumnAlignmentTest.java
new file mode 100644
index 0000000000..3d613fd726
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/table/LeftColumnAlignmentTest.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.components.table;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.By;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+/**
+ * Test class for issue #13399 : Left alignment should not be set explicitly
+ * instead of relying on default behavior
+ *
+ * @author Vaadin Ltd
+ */
+public class LeftColumnAlignmentTest extends MultiBrowserTest {
+
+ @Test
+ public void testLeftColumnAlignment() throws Exception {
+ openTestURL();
+
+ // Do align columns to the left
+ WebElement webElement = driver.findElement(By.className("v-button"));
+ webElement.click();
+
+ Assert.assertTrue("Table caption is not aligned to the left",
+ isElementPresent(By
+ .className("v-table-caption-container-align-left")));
+
+ WebElement footer = driver.findElement(By
+ .className("v-table-footer-container"));
+
+ Assert.assertEquals("Table footer is not aligned to the left", "left",
+ footer.getCssValue("text-align"));
+
+ WebElement cell = driver.findElement(By
+ .className("v-table-cell-wrapper"));
+
+ Assert.assertEquals("Table cell is not aligned to the left", "left",
+ cell.getCssValue("text-align"));
+ }
+
+}
--
cgit v1.2.3
From 43c1a364fd240fda8bf8a3e58b417d2cea76d36c Mon Sep 17 00:00:00 2001
From: Jonatan Kronqvist
Date: Fri, 9 May 2014 15:07:47 +0300
Subject: Update the release-notes (#13612)
* Removed the "Tools have been updated for Vaadin 7.2 with the following changes:"
* Removed the security fix notice for 7.1.11
* Removed the text about using the experimental Eclipse plug-in
* Specify that 7.2 is a minor release
* Clarified the known issues section
* Listed Windows Phone 8 in supported devices
* Replaced vaadin.com/pro-account with vaadin.com/pro-tools and vaadin.com/support
Change-Id: I8e03b65453419c9cb9f4570067675156f2be76fe
---
WebContent/release-notes.html | 152 +++++++-----------------------------------
1 file changed, 24 insertions(+), 128 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 7de723629f..5b9f15f06b 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -41,7 +41,6 @@
- Overview of Vaadin
@version@ Release
- - Security fixes
- Change log for Vaadin
@version@
- Enhancements in Vaadin
@@ -70,56 +69,13 @@
Overview of Vaadin @version@ Release
- Vaadin @version@ is a maintenance release that includes a
- number of important bug fixes, as listed in the list of enhancements and change log below.
-
- For a list of enhancements in the last feature release, see
- Enhancements in Vaadin
- @version-minor@ and the Release
- Notes for Vaadin @version-minor@.0.
-
-
- Security fixes in Vaadin Framework 7.1.11
-
-
- Vaadin 7.1.11 fixes two security issues discovered during internal review.
-
- Escaping of OptionGroup item icon URLs
-
- The issue affects OptionGroup with item icons. Proper escaping of the
- src-attribute on the client side was not ensured when using icons for
- OptionGroup items. This could potentially, in certain situations, allow
- a malicious user to inject content, such as javascript, in order to
- perform a cross-site scripting (XSS) attack.
-
-
- In order for an application to be vulnerable, user provided input must
- be used to form a URL used to display an icon for an OptionGroup item,
- when showing that Option Group to other users.
- The vulnerability has been classified as moderate, due to it's limited
- application.
-
- Escaping of URLs in Util.getAbsoluteUrl()
-
- The client side Util.getAbsoluteUrl() did not ensure proper escaping
- of the given URL. This could potentially, in certain situations, allow
- a malicious user to inject content, such as javascript, in order to
- perform a cross-site scripting (XSS) attack.
-
-
- The method is used internally by the framework in such a manner that it
- is unlikely this attack vector can be utilized in practice. However,
- third party components, or future use of the method, could make an
- attack viable.
- The vulnerability has been classified as moderate, due to it's limited
- application.
-
-
Change log for Vaadin @version@
This release includes the following closed issues:
@@ -130,7 +86,7 @@
You can also view the list
- of the closed issues at the Vaadin developer's site. .
+ of the closed issues
at the Vaadin developer's site.
Enhancements in Vaadin
@@ -160,28 +116,6 @@
Responsive layouts
- Tools have been updated for Vaadin @version-minor@ with
- the following changes:
-
-
- - Maven
-
- - Theme compilation support using vaadin:update-theme
- and vaadin:compile-theme
-
-
- - Eclipse
-
- - Theme compilation support using the
- provided button
- - New projects are by default generated using
- Servlet 3.0 API
- - Additional GWT compiler parameters can be
- specified
-
-
-
-
For enchancements introduced in Vaadin 7, see the Release
@@ -198,9 +132,7 @@
from the Android SDK. They are 99% compatible.
StringToNumberConverter has been removed in favor of more specific
converters such as StringToBigDecimalConverter.
- (internal) Atmosphere has been updated from version 1.x to 2.x. These
- are not 100% compatible.
- (internal) There is no longer support for "multiple variable bursts"
+ There is no longer support for "multiple variable bursts"
in the UIDL communication.
Behavior altering changes
@@ -222,12 +154,8 @@
Known issues
- - Not all features are implemented for devices using pointer events.
- - Push reconnecting does not work in all situations when
-
- - using Firefox and streaming
- - using IE8-11 and long-polling
-
+ - Reconnecting a dropped push connection sometimes fails when using
+ Firefox and streaming.
Limitations
@@ -241,17 +169,13 @@
href="http://dev.vaadin.com/ticket/11493">#11493)
HTTP session can not be invalidated while using
- push (#11721)
+ push over websockets on Tomcat 7 (#11721)
- Cookies are not available while using push (Cookies are not available while using websockets (#11808)
- Not all proxies are compatible with websockets. If
- you are using push with an incompatible proxy you might
- have to force the transport mode to streaming. Some
- proxies have problems with streaming also - you need to
- ensure that the proxy does not buffer responses for HTTP
- streaming to work.
+ Not all proxies are compatible with websockets or streaming.
+ Use long polling to avoid these problems.
Vaadin Installation
@@ -278,8 +202,7 @@
If using Eclipse, use the Vaadin Plugin for
Eclipse, which automatically downloads the Vaadin
- libraries. To use this prerelease version, the plugin
- should be installed from the experimental update site (http://vaadin.com/eclipse/experimental).
+ libraries.
@@ -416,30 +339,7 @@
directory of the web application that uses validation.
- Upgrading to Vaadin @version-minor@
-
- Upgrading the Eclipse Plugin
-
-
- Vaadin 7 requires that you use a compatible version of the
- Vaadin Plugin for Eclipse. The stable version of the plugin
- is available from the
- http://vaadin.com/eclipse
- update site. Please see the section
- about updating the plugin in the Book of Vaadin and the
- installation
- instructions at the download site for more details.
-
-
-
- You can also use the experimental Vaadin Plugin for
- Eclipse. Its update site is
- http://vaadin.com/eclipse/experimental
- .
-
-
- General Upgrading Instructions
+ Upgrading from Vaadin 7.1 to Vaadin @version-minor@
When upgrading from an earlier Vaadin version, you must:
@@ -449,11 +349,8 @@
version. Binary compatibility is only guaranteed for
maintenance releases of Vaadin.
- Recompile any add-ons you have created using the
- new Vaadin
-
Unless using the precompiled widget set, recompile
- your widget set using the new Vaadin version
+ your widget set using the new Vaadin version.
Remember also to refresh the project in your IDE to
@@ -492,12 +389,9 @@
the contents of the vaadin-client-compiled and vaadin-themes
must be extracted to the ROOT/html/VAADIN directory
in the Liferay installation. If your portal uses custom
- widgets, install the latest version of Vaadin
- Control Panel for Liferay for easy widget set
- compilation - when it is available - the add-on is not
- compatible with Vaadin @version@ at the time of this Vaadin
- release.
+ widgets, you can use
+ Liferay Control Panel for Vaadin for easy widget set compilation.
@@ -623,11 +517,11 @@
- Vaadin supports the following desktop browsers:
+ Vaadin @version@ supports the following desktop browsers:
- - Mozilla Firefox 18-28
+ - Mozilla Firefox 18-29
- Mozilla Firefox 17 ESR, 24 ESR
- Internet Explorer 8-11
- Safari 6-7
@@ -643,6 +537,7 @@
- iOS 5-7
- Android 2.3-4
+ - Windows Phone 8
Vaadin SQL Container supports the following databases:
@@ -674,9 +569,10 @@
- vaadin.com/directory
- Add-ons for Vaadin
- - vaadin.com/pro-account
- - Commercial support and tools for Vaadin
- development
+ - vaadin.com/pro-tools
+ - Commercial tools for Vaadin development
+ - vaadin.com/support
+ - Commercial support for Vaadin development
- vaadin.com/services
- Expert services for Vaadin
- vaadin.com/company
--
cgit v1.2.3
From cd20de5e686f24e36cfd66ef18b001cb845ad9c6 Mon Sep 17 00:00:00 2001
From: Teemu Suo-Anttila
Date: Fri, 9 May 2014 14:43:14 +0300
Subject: Make touch actions disabled on some CSS classes (#13368)
This makes Slider, SplitPanels and DragAndDrop anywhere except Table
work on IE and touch screen.
Change-Id: I1c710a14fc3957c81ade07fd2a3de1e4b6feec1a
---
WebContent/VAADIN/themes/base/dragwrapper/dragwrapper.scss | 2 ++
WebContent/VAADIN/themes/base/slider/slider.scss | 3 ++-
WebContent/VAADIN/themes/base/splitpanel/splitpanel.scss | 4 ++++
3 files changed, 8 insertions(+), 1 deletion(-)
(limited to 'WebContent')
diff --git a/WebContent/VAADIN/themes/base/dragwrapper/dragwrapper.scss b/WebContent/VAADIN/themes/base/dragwrapper/dragwrapper.scss
index e66f02e207..86000abd7c 100644
--- a/WebContent/VAADIN/themes/base/dragwrapper/dragwrapper.scss
+++ b/WebContent/VAADIN/themes/base/dragwrapper/dragwrapper.scss
@@ -6,6 +6,8 @@
-webkit-border-radius: 4px;
border-radius: 4px;
position: relative;
+ -ms-touch-action: none;
+ touch-action: none;
}
[draggable=true] {
-khtml-user-drag: element;
diff --git a/WebContent/VAADIN/themes/base/slider/slider.scss b/WebContent/VAADIN/themes/base/slider/slider.scss
index 9ef94d9d9e..60047bc6db 100644
--- a/WebContent/VAADIN/themes/base/slider/slider.scss
+++ b/WebContent/VAADIN/themes/base/slider/slider.scss
@@ -10,7 +10,6 @@
background: #eee;
border-left: 1px solid #ddd;
border-right: 1px solid #eee;
-
}
.#{$primaryStyleName}-handle {
background: #aaa;
@@ -18,6 +17,8 @@
height: 12px;
margin-top: -5px;
font-size: 0;
+ -ms-touch-action: none;
+ touch-action: none;
}
.#{$primaryStyleName}-vertical {
diff --git a/WebContent/VAADIN/themes/base/splitpanel/splitpanel.scss b/WebContent/VAADIN/themes/base/splitpanel/splitpanel.scss
index bae740257f..968894d92d 100644
--- a/WebContent/VAADIN/themes/base/splitpanel/splitpanel.scss
+++ b/WebContent/VAADIN/themes/base/splitpanel/splitpanel.scss
@@ -15,6 +15,8 @@
background: #ddd;
cursor: e-resize;
cursor: col-resize;
+ -ms-touch-action: none;
+ touch-action: none
}
.v-disabled .#{$primaryStyleName}-hsplitter div {
cursor: default;
@@ -27,6 +29,8 @@
background: #ddd;
cursor: s-resize;
cursor: row-resize;
+ -ms-touch-action: none;
+ touch-action: none;
}
.v-disabled .#{$primaryStyleName}-vsplitter div {
cursor: default;
--
cgit v1.2.3
From e8f0fe7a5a7ca0d5605dfeb5bc774578019b65da Mon Sep 17 00:00:00 2001
From: Artur Signell
Date: Fri, 9 May 2014 20:49:51 +0300
Subject: Show badges in release notes (#13612)
Change-Id: I6109cda80251b343999b75f51ffecf6a9bbbd6a2
---
WebContent/css/styles.css | 34 ++++++++++++++++++++++
WebContent/release-notes.html | 10 +++++--
.../buildhelpers/FetchReleaseNotesTickets.java | 18 ++++++++++--
3 files changed, 56 insertions(+), 6 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/css/styles.css b/WebContent/css/styles.css
index 9a5ddc74c1..9bd03ae8bc 100644
--- a/WebContent/css/styles.css
+++ b/WebContent/css/styles.css
@@ -439,3 +439,37 @@ img {
margin: 0em 2em .8em 2em;
float: right;
}
+
+span.fv {
+ padding: 2px 10px;
+ margin-right: 5px;
+ color: rgb(71,174,67);
+ font-weight: bold;
+}
+td.fv {
+ background-color: rgb(206,247,205);
+ text-align: center;
+ border-radius: 3px;
+ font-size: 12px;
+ line-height: 1;
+ font-weight: bold;
+}
+td.bfp {
+ text-align: center;
+ color: rgb(37,114,146);
+ border-radius: 3px;
+
+ padding: 2px 10px;
+ margin-right: 5px;
+ background-color: rgb(216,245,255);
+ font-size: 12px;
+ line-height: 1;
+ font-weight: bold;
+}
+.ticket {
+ text-align: right;
+ padding-left: 5px;
+}
+.pad {
+ padding-left: 5px;
+}
\ No newline at end of file
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 5b9f15f06b..f912f9924e 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -80,9 +80,13 @@
This release includes the following closed issues:
- @release-notes-tickets@
-
-
+
+ @release-notes-tickets@
+ | |
+ Vote | Enhancements Vaadin support users have voted for |
+ Priority | Defects Vaadin support users have prioritized |
+
+
You can also view the list
diff --git a/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java
index 4ca17443dc..6434c94352 100644
--- a/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java
+++ b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java
@@ -24,8 +24,12 @@ import java.util.List;
import org.apache.commons.io.IOUtils;
public class FetchReleaseNotesTickets {
- private static final String queryURL = "http://dev.vaadin.com/query?status=closed&milestone=Vaadin+@version@&resolution=fixed&format=tab&order=id";
- private static final String ticketTemplate = " - #@ticket@: @description@
";
+ private static final String queryURL = "http://dev.vaadin.com/query?status=closed&milestone=Vaadin+@version@&resolution=fixed&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=version&col=bfptime&col=fv&format=tab&order=id";
+ private static final String ticketTemplate = ""
+ + "@badge@" //
+ + "#@ticket@ | " //
+ + "@description@ | " //
+ + "
"; //
public static void main(String[] args) throws IOException {
String version = System.getProperty("vaadin.version");
@@ -52,8 +56,16 @@ public class FetchReleaseNotesTickets {
summary = summary.substring(1, summary.length() - 1);
summary = summary.replace("\"\"", "\"");
}
+ String badge = "
| ";
+ if (fields.length >= 8 && !fields[7].equals("")) {
+ badge = "Priority | ";
+ } else if (fields.length >= 9 && fields[8].equalsIgnoreCase("true")) {
+ badge = "Vote | ";
+ }
+
System.out.println(ticketTemplate.replace("@ticket@", fields[0])
- .replace("@description@", summary));
+ .replace("@description@", summary)
+ .replace("@badge@", badge));
}
urlStream.close();
}
--
cgit v1.2.3
From e975af74a60b446551354182a3904604dae09278 Mon Sep 17 00:00:00 2001
From: Artur Signell
Date: Fri, 9 May 2014 22:38:42 +0300
Subject: List authors in release notes (#13612)
Change-Id: I51960e9345ff233e29289b33d3224e03d866d463
---
WebContent/release-notes.html | 6 ++
buildhelpers/build.xml | 9 ++
.../buildhelpers/FetchReleaseNotesAuthors.java | 101 +++++++++++++++++++++
.../com/vaadin/buildhelpers/authormap.properties | 6 ++
common.xml | 19 +++-
5 files changed, 138 insertions(+), 3 deletions(-)
create mode 100644 buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java
create mode 100644 buildhelpers/src/com/vaadin/buildhelpers/authormap.properties
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index f912f9924e..2737ff3014 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -63,6 +63,7 @@
@version-minor@
- Supported
technologies
+ - Authors
- Vaadin on the Web
@@ -553,6 +554,11 @@
PostgreSQL
+ Authors
+ Vaadin @version@ was created by:
+
+ @release-notes-authors@
+
Vaadin on the Web
diff --git a/buildhelpers/build.xml b/buildhelpers/build.xml
index 28eb55e6e8..159435811f 100644
--- a/buildhelpers/build.xml
+++ b/buildhelpers/build.xml
@@ -44,6 +44,15 @@
+
+
+
+
+
+
+
+
+
WHAT? No JUnit tests for ${module.name}!
diff --git a/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java
new file mode 100644
index 0000000000..cd85ca6a3f
--- /dev/null
+++ b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.buildhelpers;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+
+public class FetchReleaseNotesAuthors {
+ private static final String template = "- @author@
";
+
+ public static void main(String[] args) throws IOException,
+ InterruptedException {
+ Properties authorMap = new Properties();
+
+ String authorsFilename = FetchReleaseNotesAuthors.class.getPackage()
+ .getName().replace(".", "/")
+ + "/authormap.properties";
+ InputStream s = FetchReleaseNotesAuthors.class.getClassLoader()
+ .getResourceAsStream(authorsFilename);
+ if (s == null) {
+ System.err.println("Author mapping file " + authorsFilename
+ + " not found!");
+ }
+ authorMap.load(s);
+
+ String version = System.getProperty("vaadin.version");
+ String previousVersion = getPreviousVersion(version);
+ // System.out.println("Using previous version: " + previousVersion);
+ // List all commits which are in this version but not in
+ // "previousVersion"
+ String cmd = "git log --pretty=%an HEAD ^origin/" + previousVersion;
+ Process p = Runtime.getRuntime().exec(cmd);
+ p.waitFor();
+ if (p.exitValue() != 0) {
+ System.err.println("Exit code: " + p.exitValue());
+ }
+ BufferedReader b = new BufferedReader(new InputStreamReader(
+ p.getInputStream()));
+ String line = "";
+
+ List authors = new ArrayList();
+ while ((line = b.readLine()) != null) {
+ String author = line;
+ if (authorMap.containsKey(author)) {
+ author = authorMap.getProperty(author);
+ }
+ if (author != null && !author.equals("")
+ && !authors.contains(author)) {
+ authors.add(author);
+ }
+ }
+ Collections.sort(authors);
+ for (String author : authors) {
+ System.out.println(template.replace("@author@", author));
+ }
+ }
+
+ private static String getPreviousVersion(String version) {
+ String[] versionNumbers = version.split("\\.");
+ if (versionNumbers.length > 4 || versionNumbers.length < 3) {
+ throw new IllegalArgumentException("Cannot parse version: "
+ + version);
+ }
+ int major = Integer.parseInt(versionNumbers[0]);
+ int minor = Integer.parseInt(versionNumbers[1]);
+ int maintenance = Integer.parseInt(versionNumbers[2]);
+ // String qualifier = versionNumbers[3];
+
+ if (minor == 0) {
+ // Major release, can't know what the previous minor was
+ throw new IllegalArgumentException(
+ "Can't know what previous minor version was");
+ }
+ if (maintenance == 0) {
+ // Minor release, use last minor
+ return major + "." + (minor - 1);
+ } else {
+ // Maintenance, use last maintenance
+ return major + "." + minor + "." + (maintenance - 1);
+ }
+ }
+}
diff --git a/buildhelpers/src/com/vaadin/buildhelpers/authormap.properties b/buildhelpers/src/com/vaadin/buildhelpers/authormap.properties
new file mode 100644
index 0000000000..15b8ad2cba
--- /dev/null
+++ b/buildhelpers/src/com/vaadin/buildhelpers/authormap.properties
@@ -0,0 +1,6 @@
+denisanisimov=Denis Anisimov
+joheriks=Johannes Eriksson
+michaelvogt=Michael Vogt
+tapio=Tapio Aali
+Build\ Agent=
+mtzukanov=Michael Tzukanov
\ No newline at end of file
diff --git a/common.xml b/common.xml
index 17537899de..6e28ab6a60 100644
--- a/common.xml
+++ b/common.xml
@@ -32,12 +32,14 @@
+
-
+
+
@@ -68,16 +70,27 @@
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3
From deeb645c3c834415792bf6c6909f5190d52bad68 Mon Sep 17 00:00:00 2001
From: Jonatan Kronqvist
Date: Sun, 11 May 2014 10:10:34 +0300
Subject: Added link to ticket for the Firefox reconnect issue (#13612)
Change-Id: I2eac5ab68479420beacef2d746f69e955becc397
---
WebContent/release-notes.html | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 2737ff3014..dfa68209ac 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -160,7 +160,9 @@
Known issues
- Reconnecting a dropped push connection sometimes fails when using
- Firefox and streaming.
+ Firefox and streaming or long polling.
+ (#13578)
+
Limitations
--
cgit v1.2.3
From 45226d5c32e7e084bc494a58596bf6ff7a2c0f85 Mon Sep 17 00:00:00 2001
From: Jonatan Kronqvist
Date: Sun, 11 May 2014 10:17:31 +0300
Subject: Mention dnd on IE touch devices in known issues (#13612)
Change-Id: I15297c2d0862f3b8c0c5603b06f6e37706872752
---
WebContent/release-notes.html | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index dfa68209ac..847bade7cd 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -163,6 +163,10 @@
Firefox and streaming or long polling.
(#13578)
+ - Drag'n'drop in a Table doesn't work on touch devices running
+ Internet Explorer (Windows Phone, Surface)
+ (#13737)
+
Limitations
--
cgit v1.2.3
From 717d868b79896811e5a9489239f3eea42e1fed09 Mon Sep 17 00:00:00 2001
From: Artur Signell
Date: Wed, 14 May 2014 01:13:10 +0300
Subject: Disable authors because of build agent problems
Change-Id: I5426d8a85f7b57193c1bbfe201258a09f93b54cb
---
WebContent/release-notes.html | 6 ------
1 file changed, 6 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index 847bade7cd..baa91232b2 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -63,7 +63,6 @@
@version-minor@
Supported
technologies
- Authors
Vaadin on the Web
@@ -560,11 +559,6 @@
PostgreSQL
- Authors
- Vaadin @version@ was created by:
-
- @release-notes-authors@
-
Vaadin on the Web
--
cgit v1.2.3
From 3ecad007706be76bcd2183dd128259b94fdeb67a Mon Sep 17 00:00:00 2001
From: Manolo Carrasco
Date: Fri, 9 May 2014 09:47:14 +0200
Subject: Avoid Vaadin entry-point being run twice (#13730)
- Prevent bootstrap script fail if registerWidgetset is called twice
with the same widgetset.
Change-Id: I8b8069b442ea91c1aa0f0b7dd73c41902e75094b
---
WebContent/VAADIN/vaadinBootstrap.js | 15 +++++++++------
.../src/com/vaadin/client/ApplicationConfiguration.java | 8 ++++++++
2 files changed, 17 insertions(+), 6 deletions(-)
(limited to 'WebContent')
diff --git a/WebContent/VAADIN/vaadinBootstrap.js b/WebContent/VAADIN/vaadinBootstrap.js
index fc0fb9b948..ea1ea21b46 100644
--- a/WebContent/VAADIN/vaadinBootstrap.js
+++ b/WebContent/VAADIN/vaadinBootstrap.js
@@ -231,13 +231,16 @@
loadTheme: loadTheme,
registerWidgetset: function(widgetset, callback) {
log("Widgetset registered", widgetset);
- widgetsets[widgetset].callback = callback;
- for(var i = 0; i < widgetsets[widgetset].pendingApps.length; i++) {
- var appId = widgetsets[widgetset].pendingApps[i];
- log("Starting from register widgetset", appId);
- callback(appId);
+ var ws = widgetsets[widgetset];
+ if (ws && ws.pendingApps) {
+ ws.callback = callback;
+ for(var i = 0; i < ws.pendingApps.length; i++) {
+ var appId = ws.pendingApps[i];
+ log("Starting from register widgetset", appId);
+ callback(appId);
+ }
+ ws.pendingApps = null;
}
- widgetsets[widgetset].pendingApps = null;
},
getBrowserDetailsParameters: function(parentElementId) {
// Screen height and width
diff --git a/client/src/com/vaadin/client/ApplicationConfiguration.java b/client/src/com/vaadin/client/ApplicationConfiguration.java
index d483b39a7b..543a48f61b 100644
--- a/client/src/com/vaadin/client/ApplicationConfiguration.java
+++ b/client/src/com/vaadin/client/ApplicationConfiguration.java
@@ -222,6 +222,7 @@ public class ApplicationConfiguration implements EntryPoint {
private boolean browserDetailsSent = false;
private boolean widgetsetVersionSent = false;
+ private static boolean moduleLoaded = false;
static// TODO consider to make this hashmap per application
LinkedList callbacks = new LinkedList();
@@ -596,6 +597,13 @@ public class ApplicationConfiguration implements EntryPoint {
@Override
public void onModuleLoad() {
+
+ // Don't run twice if the module has been inherited several times.
+ if (moduleLoaded) {
+ return;
+ }
+ moduleLoaded = true;
+
Profiler.initialize();
Profiler.enter("ApplicationConfiguration.onModuleLoad");
--
cgit v1.2.3