From f7ee8fb1d2c6b6d51e03486968f3bc20e7c44b4d Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Fri, 30 Aug 2013 11:18:16 +0300 Subject: Updated _trackMessageSize based on latest upstream version (#12468) Change-Id: Ie7db27a026d52befe027ed2abb96e62947f8116d --- WebContent/VAADIN/jquery.atmosphere.js | 46 ++++++++++++++++------------------ 1 file changed, 21 insertions(+), 25 deletions(-) (limited to 'WebContent') diff --git a/WebContent/VAADIN/jquery.atmosphere.js b/WebContent/VAADIN/jquery.atmosphere.js index b6f86d428a..520e63d7cb 100644 --- a/WebContent/VAADIN/jquery.atmosphere.js +++ b/WebContent/VAADIN/jquery.atmosphere.js @@ -1199,6 +1199,9 @@ jQuery.atmosphere = function() { * @param response */ function _trackMessageSize(message, request, response) { + if (message.length === 0) + return true; + if (request.trackMessageLength) { // If we have found partial message, prepend them. @@ -1207,36 +1210,29 @@ jQuery.atmosphere = function() { } var messages = []; - var messageLength = 0; var messageStart = message.indexOf(request.messageDelimiter); - while (messageStart != -1) { - messageLength = jQuery.trim(message.substring(messageLength, messageStart)); - message = message.substring(messageStart + request.messageDelimiter.length, message.length); - - // Stop search if there is not enough characters remaining (wait for next part to arrive) - if (message.length == 0 || message.length < messageLength) break; - - // Find start of a possibly existing subsequent message from the remaining data - messageStart = message.substring(messageLength).indexOf(request.messageDelimiter); - - // Store the completely received message - messages.push(message.substring(0, messageLength)); - } - - if (messages.length == 0 || (message.length != 0 && messageLength != message.length)){ - if (messageStart == -1) { - // http://dev.vaadin.com/ticket/12197 - // partialMessage must contain length header of next message - // it starts at the end of the last message - response.partialMessage = message.substring(messageLength); + while (messageStart !== -1) { + var str = jQuery.trim(message.substring(0, messageStart)); + var messageLength = parseInt(str, 10); + if (isNaN(messageLength)) + throw 'message length "' + str + '" is not a number'; + messageStart += request.messageDelimiter.length; + if (messageStart + messageLength > message.length) { + // message not complete, so there is no trailing messageDelimiter + messageStart = -1; } else { - response.partialMessage = messageLength + request.messageDelimiter + message ; + // message complete, so add it + messages.push(message.substring(messageStart, messageStart + messageLength)); + // remove consumed characters + message = message.substring(messageStart + messageLength, message.length); + messageStart = message.indexOf(request.messageDelimiter); } - } else { - response.partialMessage = ""; } - if (messages.length != 0) { + /* keep any remaining data */ + response.partialMessage = message; + + if (messages.length !== 0) { response.responseBody = messages.join(request.messageDelimiter); response.messages = messages; return false; -- cgit v1.2.3 From 7068d7827b1625ebdf985841b55b5243c01fd4ec Mon Sep 17 00:00:00 2001 From: Jonatan Kronqvist Date: Wed, 28 Aug 2013 16:04:54 +0300 Subject: The colon in the calendar event caption is now also hideable. Fixes #12460 Change-Id: Idc81c3cc614bc59c2a93615bd5ac5cac9b72f752 --- WebContent/VAADIN/themes/tests-calendar/styles.css | 10 +- .../ui/calendar/schedule/DateCellDayEvent.java | 13 ++- .../calendar/TestHideTimeAndSeparator.html | 47 +++++++++ .../calendar/TestHideTimeAndSeparator.java | 105 +++++++++++++++++++++ 4 files changed, 170 insertions(+), 5 deletions(-) create mode 100644 uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.html create mode 100644 uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.java (limited to 'WebContent') diff --git a/WebContent/VAADIN/themes/tests-calendar/styles.css b/WebContent/VAADIN/themes/tests-calendar/styles.css index 7a37fcfdaf..e3fa107751 100644 --- a/WebContent/VAADIN/themes/tests-calendar/styles.css +++ b/WebContent/VAADIN/themes/tests-calendar/styles.css @@ -93,4 +93,12 @@ .v-calendar .v-calendar-event-color4 .v-calendar-event-content { border-color: #cd6a00; background-color: #faa345; - } \ No newline at end of file + } + +/** + * Hide time in captions + */ +.v-calendar-event-hide-time .v-calendar-event-caption>span, +.v-calendar-event-hide-time .v-calendar-event-caption>br { + display: none; +} \ No newline at end of file diff --git a/client/src/com/vaadin/client/ui/calendar/schedule/DateCellDayEvent.java b/client/src/com/vaadin/client/ui/calendar/schedule/DateCellDayEvent.java index b69d2a4fe7..39de122694 100644 --- a/client/src/com/vaadin/client/ui/calendar/schedule/DateCellDayEvent.java +++ b/client/src/com/vaadin/client/ui/calendar/schedule/DateCellDayEvent.java @@ -185,10 +185,15 @@ public class DateCellDayEvent extends FocusableHTML implements * If false, event is so small that caption must be in time-row */ private void updateCaptions(boolean bigMode) { - String separator = bigMode ? "
" : ": "; - caption.setInnerHTML("" + calendarEvent.getTimeAsText() - + "" + separator - + Util.escapeHTML(calendarEvent.getCaption())); + String innerHtml; + String escapedCaption = Util.escapeHTML(calendarEvent.getCaption()); + String timeAsText = calendarEvent.getTimeAsText(); + if (bigMode) { + innerHtml = "" + timeAsText + "
" + escapedCaption; + } else { + innerHtml = "" + timeAsText + ": " + escapedCaption; + } + caption.setInnerHTML(innerHtml); eventContent.setInnerHTML(""); } diff --git a/uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.html b/uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.html new file mode 100644 index 0000000000..38a6be24ce --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.html @@ -0,0 +1,47 @@ + + + + + + + TestHideTimeAndSeparator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestHideTimeAndSeparator
open/run/com.vaadin.tests.components.calendar.TestHideTimeAndSeparator?restartApplication
assertNotVisiblevaadin=runcomvaadintestscomponentscalendarTestHideTimeAndSeparator::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VCalendar[0]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]/domChild[35]/domChild[0]/domChild[0]
assertNotVisiblevaadin=runcomvaadintestscomponentscalendarTestHideTimeAndSeparator::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VCalendar[0]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]/domChild[34]/domChild[0]/domChild[0]
assertVisiblevaadin=runcomvaadintestscomponentscalendarTestHideTimeAndSeparator::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VCalendar[0]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[3]/domChild[0]/domChild[35]/domChild[0]/domChild[0]
assertVisiblevaadin=runcomvaadintestscomponentscalendarTestHideTimeAndSeparator::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VCalendar[0]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[3]/domChild[0]/domChild[34]/domChild[0]/domChild[0]
assertTextvaadin=runcomvaadintestscomponentscalendarTestHideTimeAndSeparator::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VCalendar[0]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[3]/domChild[0]/domChild[35]/domChild[0]/domChild[0]8:00 AM:
+ + diff --git a/uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.java b/uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.java new file mode 100644 index 0000000000..d82e75c94d --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/calendar/TestHideTimeAndSeparator.java @@ -0,0 +1,105 @@ +package com.vaadin.tests.components.calendar; + +import com.vaadin.annotations.Theme; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Calendar; +import com.vaadin.ui.components.calendar.event.CalendarEvent; +import com.vaadin.ui.components.calendar.event.CalendarEventProvider; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Theme("tests-calendar") +public class TestHideTimeAndSeparator extends AbstractTestUI { + + class GenericEvent implements CalendarEvent { + private final Date start; + private final Date end; + private final String caption; + private final boolean hideTime; + + public GenericEvent(Date start, Date end, String caption, boolean hideTime) { + this.start = start; + this.end = end; + this.caption = caption; + this.hideTime = hideTime; + } + + @Override + public Date getStart() { + return start; + } + + @Override + public Date getEnd() { + return end; + } + + @Override + public String getCaption() { + return caption; + } + + @Override + public String getDescription() { + return "This is a " + caption; + } + + @Override + public String getStyleName() { + return hideTime ? "hide-time" : null; + } + + @Override + public boolean isAllDay() { + return false; + } + + } + + CalendarEvent shortEventHidden = new GenericEvent(makeDate(2013, 1, 2, 8, 0), makeDate(2013, 1, 2, 8, 30), "Short event", true); + CalendarEvent longEventHidden = new GenericEvent(makeDate(2013, 1, 2, 10, 0), makeDate(2013, 1, 2, 12, 0), "Long event", true); + CalendarEvent shortEvent = new GenericEvent(makeDate(2013, 1, 3, 8, 0), makeDate(2013, 1, 3, 8, 30), "Short event", false); + CalendarEvent longEvent = new GenericEvent(makeDate(2013, 1, 3, 10, 0), makeDate(2013, 1, 3, 12, 0), "Long event", false); + + @Override + protected void setup(VaadinRequest request) { + Calendar cal = new Calendar(); + cal.setWidth("100%"); + cal.setHeight("500px"); + + cal.addEvent(shortEventHidden); + cal.addEvent(longEventHidden); + cal.addEvent(shortEvent); + cal.addEvent(longEvent); + + cal.setStartDate(makeDate(2013, 1, 1)); + cal.setEndDate(makeDate(2013, 1, 7)); + cal.setFirstVisibleHourOfDay(7); + + addComponent(cal); + } + + @Override + protected String getTestDescription() { + return "The time should be hideable by CSS"; + } + + @Override + protected Integer getTicketNumber() { + return 12460; + } + + private Date makeDate(int year, int month, int day, int hour, int minute) { + java.util.Calendar juc = java.util.Calendar.getInstance(); + juc.set(year, month, day, hour, minute); + return juc.getTime(); + } + private Date makeDate(int year, int month, int day) { + java.util.Calendar juc = java.util.Calendar.getInstance(); + juc.set(year, month, day); + return juc.getTime(); + } +} -- cgit v1.2.3 From 61dd8f782775d042aa32ef33cda3c71a77224ede Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 2 Sep 2013 14:19:47 +0300 Subject: Corrected typo in version variable (#12440) Change-Id: Ib9a3efee02f4887072e7892d869911b78ec5e1d8 --- WebContent/release-notes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'WebContent') diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html index f3ec68e41f..77b6d639c9 100644 --- a/WebContent/release-notes.html +++ b/WebContent/release-notes.html @@ -140,7 +140,7 @@
  • TableQuery now supports schemas and catalogs
  • -

    Tools have been updated for Vaadin @vaadin-minor@ with +

    Tools have been updated for Vaadin @version-minor@ with the following changes:

      -- cgit v1.2.3 From 476e0b843ae07787c27ed48eba47870b7ffa833f Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 2 Sep 2013 14:23:43 +0300 Subject: Changed 'feature release' text to maintenance release (#12486) Change-Id: I2896136065232d2704bb4807ff92e6ef384407e8 --- WebContent/release-notes.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'WebContent') diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html index 77b6d639c9..9ee45075f3 100644 --- a/WebContent/release-notes.html +++ b/WebContent/release-notes.html @@ -63,10 +63,9 @@

      Overview of Vaadin @version@ Release

      - Vaadin @version@ is a feature release that includes a number - of enhancements as well as important bug fixes, as listed in - the change log below. You can also - view the change + log below. You can also view the list of the closed issues at the Vaadin developer's site.

      -- cgit v1.2.3 From faa256978731eaeda6930c18085fb28377700227 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 2 Sep 2013 14:36:23 +0300 Subject: Updated browser versions Change-Id: If091d718fc45b226a60a4c69d3469b4b31919ac1 --- WebContent/release-notes.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'WebContent') diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html index 9ee45075f3..387a5121cb 100644 --- a/WebContent/release-notes.html +++ b/WebContent/release-notes.html @@ -573,12 +573,12 @@

        -
      • Mozilla Firefox 18-21
      • +
      • Mozilla Firefox 18-23
      • Mozilla Firefox 17 ESR
      • Internet Explorer 8-10
      • Safari 6
      • Opera 12
      • -
      • Google Chrome 23-27
      • +
      • Google Chrome 23-29

      -- cgit v1.2.3