Web Framework Build Notes 19.1
WebApp Framework 19.1.83
- Fixed sample code in
WebOrderMobile SalesPersonZoom demoing the file upload. This commented
out code was still referring to the short table name.
- Df_Material: Fixed the
arrow icons shown in the cWebGroup, cWebDatePicker and cWebList on
sort column headers.
- Fixed a typo in the
MobileZoom template.
- Changed OnShow of cWebView
to fire in its separate roundtrip again (like it did before). This
resolves compatibility and makes it fire after OnHide of the view
you are leaving. OnBeforeShow is added and will be fired in the same
round-trip where Show is called (if possible).
- Fixed cWebImage which
wasn't always showing the image when pePosition was set to wiFit.
- Made calling Show from
OnLoad of another view work.
- Fixed Refresh logic
of cWebView so that the URL doesn't get updated in the middle of the
Show process. This should fix issues when using OnDefineCustomStateHash
in a desktop style application. Note that you need to use OnBeforeShow
to restore values as OnDefineCustomStateHash will be called between
OnBeforeShow and OnShow.
WebApp
Framework 19.1.82
- Df_Material: Fixed a
bug in the ripple effect causing an area in the middle of the grid
to be un-selectable, blocking column changes.
WebApp Framework 19.1.81
- Improved handling of invalid URL's.
- 4428 - Invalid URL (unknown view)
- 4429 - Invalid URL (unknown record)
- Both errors are now loaded from the error table.
- Improved detection of invalid record ids.
- New OnNavigating event that is sent to a view being navigated into
(forward navigation). This event is the last chance to alter navigation
data before the actual navigation is performed. This event also allows
cancelling of the forward navigation.
- The OnLocationHashChange now takes precedence over OnHistoryPopState.
This causes manual changing of the state hash in the URL to result
in proper errors.
WebApp Framework 19.1.80
- Removed code for client web properties of type number in the JavaScript
Engine, this never worked with non US regional settings.
- Moved WebRegisterPath to FMAC.
- Optimized path registration (now uses BinarySearchInsertPost instead
of SortArray).
- Cleared WebAppSession tables of the samples.
WebApp Framework 19.1.79
- Fixed a bug in the cWebGrid
causing JavaScript errors on the deletion of the last row in a non-data
aware list.
- Improved list height
calculations, row heights are now recalculated when cWebColumnImage
images are loaded.
- Fixed a bug in restoring
a state hash where the first view on the stack was not accessible
from the dashboard.
WebApp Framework 19.1.78
- cWebGrid: Fixed a bug
causing the cWebColumnCombo to immediately close again on click after
its value has been changed.
- cWebAccordionCard: The
Show procedure caused client-side errors when called before the view
was rendered (from OnNavigateForward).
- cWebCombo: peDataType
and psMask are now marked as private and are always set to typeASCII
and "". These properties have never worked on cWebCombo
and should not be used.
- History Management:
- Fixed a bug in the
restoring of a state hash where navigatebegin paths where not
working if the default view has peStateMode set to vsmOff.
- Fixed an issue where
performing a find in OnNavigateForward caused the history item
of the previous view to be altered.
- cWebHttpMultipartFormdataHandler:
Parse errors are now reported through the new psParseError and piParseErrorCode
properties instead of SetReponseStatus.
WebApp Framework 19.1.77
- Df_Material:
- Fixed back button
icon for drill-down applications.
- Improved treeview
styles.
- Df_Flat_Touch &
Df_Flat_Desktop:
- Improved treeview
styles.
- cWebColumn: peWordbreak
has a new value wbEllipsis that clips the value showing three dots.
- WebOrderMobile:
- Increased the width
of the balance fields in the SelectCustomer and SelectOrderByCustomer
to accommodate longer currency symbols.
WebApp Framework 19.1.76
- Session keys now do
not contain special characters like + and / anymore. This improves
compatibility with old browsers and ASP Classic.
WebApp Framework 19.1.75
- Cleaned up cWebNavPathHelper_mixin.
- Marked private things private.
- Several optimizations.
- Improved error checking.
- JS: WebActionBar was passing parameters to genItemHtml that did
not exist.
- JS: WebColorForm was improperly referring WebDateForm when forward
sending onFocus.
- CSS: WebTreeView wasn't handling long item names very well and
indention was off for several themes.
- Session keys now do not contain special characters like + and /
anymore. This improves compatibility with old browsers and ASP Classic.
WebApp Framework 19.1.74
- cWebColumnCheckbox: Fixed a bug causing the columncheckbox to not
register all clicks in a grid with pbOfflineEditing set to true.
- cWebFileUploadButton, cWebFileUploadForm: Removed usage of invisible
overlay, switched to calling click() on an invisible file element
which is supported by all the browsers that support the HTML5 upload
in the first place.
- cWebFileUploadButton: Is now more compatible with cWebButton, it
also supports the peAlign and 'hit' styles.
- cWebFileUploadForm: Now supports F4 for opening the file selection
dialog and enter for triggering OnFileClick.
- WebRegisterNavPath is now WebRegisterPath with new parameters (see
longer description above).
WebApp Framework 19.1.73
- Fixed misspelling of the asmHistoryAndUrls constant.
- Fixed a bug were the loading of translations was overtaken by the
rendering of views (new in 19.1).
- Made sure that OnShow is always fired after OnNavigateForward.
This used to be the case before 19.1 and allowed developers to rely
on preparations only needed on forward navigation to be done.
- Themes: Moved basic breadcrumb style to system.css.
- Df_Material:
- Fixed breadcrumb menu showing behind the view in mobile mode
issue.
- Improved background color of disabled checkbox on gray background.
- Fixed wrong background color of cWebGroup caption.
- Improved button font.
- Fixed disabled buttons were hidden issue.
- cWebList: Fixed scrolling issue causing the last row to not be
completely visible.
- cWebCardContainer: Fixed an issue where swipable cards blocked
horizontal scrolling of its container.
WebApp Framework 19.1.72
- Df_Material: Improved icons-reference.html.
- The file upload and file download is now done using the new cWebHttpHandler
class. This imposes minor JavaScript changes as well.
WebApp Framework 19.1.71
- cWebCheckbox / cWebRadio: Styled checkboxes and radios now also
show the tooltip (on desktop devices).
- cWebEdit: Improved changed state detection logic which gave a false
positive because of a line feed if the control was not rendered (like
on a tab page / card that is never shown).
- Df_Material: cWebColumnCheckbox: Fixed clipping issue with MobileList
style.
- Df_Material: cWebFileUploadbutton: Fixed overflow issue causing
the clickable area to expand outside of the button.
- Df_Material: cWebLabel: Fixed peAlign being broken.
- Df_Material: Improved alignment of cWebCardContainer (it now properly
aligns with cWebGroup).
WebApp Framework 19.1.70
- Designer: Resize handle on panel set to bottom now shows on top
of the column ruler instead of behind.
- cWebDateForm: Fixed the popup not showing the proper date when
expanding.
WebApp Framework 19.1.69
- Renewed logout logic.
- Improved error message for navigateforward history management check.
It now also only triggers if history management is enabled.
- NavigateBegin now does not pass on the invoking object. This caused
problems when the invoking object was inside a different view than
the actual invoking view (it was treated like a navigateforward).
Also improved NavigateBegin to always call NavigateForward (also if
NavigateBegin is called on the default view).
WebApp Framework 19.1.67
- Fixed support for desktop style applications without a default
view. The history management logic assumed a default view to always
be set, now it checks if one is available.
- cWebFloatingPanel: After hiding automatically by lozing the focus
pbVisible did not reflect that it was hidden. This caused cWebMenuButton
to not respond to the next first click.
- NavigateBegin now also updates the state hash and the url.
- Navigating to a view with view mode off will now also update the
view stack, but it won't include it, this is because the URL might
still change because of the navigation (like NavigateBegin).
- The RequestLogout function of the session manager now only performs
a refresh when the login mode is set to required. It also shows the
default view before doing that so that the user gets the default view
after login. If peLoginMode is set to lmLoginSupported or none then
the session manager does nothing after the logout because it doesn't
know what should happen.
- Df_Material: Removed z-index from window and mask to fix the date
picker from appearing behind the window.
WebApp Framework 19.1.66
- Applied proper URL encoding for the state hashes. This should prevent
problems with special characters.
- Moved updating of the state hash (URL) until after OnNavigateForward.
OnNavigateForward might still change values influencing the URL, and
in case of custom state hashes that gets more likely.
- Fixed drop support for dropping DDO Explorer fields onto WebList
Expand Panels.
- cWebList: Added an extra IsColumn check to prevent invalid messages
to be sent to swipe buttons. This caused issues with refreshing the
page on select views with swipe buttons.
- cWebList: Improved logic for centering the current record when
rendering the list fresh.
- Df_Material: Improved alignment on the dashboard.
WebApp Framework 19.1.65
- Fixed NoWhiteSpace style of WebFloatingPanel. This also affects
the cWebDateForm.
- Fixed several syntax issues in JavaScript and CSS.
WebApp Framework 19.1.64
- Updated Df_Material theme.
- Improved ripple effect.
- Fixed issues with modal dialogs.
- Improved alignment of cWebCombo.
- Updated copyright year on the console to 2018.
- Resolved todo items.
- cWebList: Fixed a bug in the ChangeSorting where undefined was
sent for the previous reverse ordering value. This could potentially
cause errors in legacy browsers.
Samples
- Resolved todo items.
- Improved expand panel demo view.
- Moved swipe button examples to the SelectSalesPerson view (since
SelectCustomer is now only accessible via the menu > maintenance).
DF_Material Theme
- Modal resize & drag functionality fixed
- Delete icon fixed
- Icon reference fixed
- Improved ripple effect
WebApp Framework 19.1.63
- Fixed a bug in the touch scrolling (new in 19.1).
WebApp Framework 19.1.62
- cWebBaseDEO: Added support for dynamic field default values. DEO's
now maintain a pbFieldDefault state next to the regular changed-state.
This makes setting dynamic field default values work (as long as there
is a DEO).
- cWebList: Horizontal scrolling (pbAutoColumnSizing set to false)
now also works with touch devices.
- cWebList: Fixed a bug causing flaky scrolling with Safari on IOS.
- Designer: Improved resizing of columns with pbAutoColumnSizing
set to false.
- cWebView: Added new OnGetDefaultInvokingObject event hook that
is fired when reinitializing a state. It gives the developer a chance
to determine the invoking object before the navigationtype is determined.
- cWebView: Changed OnGetDefaultNavigateForwardDetails event hook
from firing on the NavigateTo view into firing it on the invoking
view which is more consistent with other navigation events.
- cWebButton: New 'AsAnchor' CSS class that visually styles the button
as an anchor.
- cWebBaseControl: Improved positioning of the info and error balloon.
Fixed JavaScript errors when the control was not rendered yet.
- cWebList, cWebButton: Added new Web_Hit class that is applied when
a button or a row is clicked. This can be used by the theme to apply
style to make the framework feel more responsive.
Samples
- Made Df_Material the default theme for the WebOrderMobile.
- Made OrdersByCustomer (with expand panel) the default customer
selection screen.
- Added Df_Material theme to the themes menu for WebOrder.
WebApp Framework 19.1.61
- Designer support for the cWebListExpandPanel, it can now be dropped
on lists and it will always show inside lists. Controls can be dropped
inside and its column count can be adjusted.
- Designer support for the cWebFloatingPanel. It can now be dropped
on containers and it will show as long as it is selected or any control
inside it is selected.
- Fixed cWebListExpandPanel issue causing animation not to work properly.
- cWebButton: New "AsAnchor" css class that visually shows
the button as an anchor link.
- cWebButton: New peAlign property that allows customization of the
caption alignment.
WebApp Framework 19.1.14.60
- cWebAccordionCard: Fixed JavaScript error when using panels inside
an accordion card (BT: 7405).
- Field errors are now only shown as control errors when the control
is actually rendered. Note that it only looks at pbRender of the control
and its containers. Other ways of hiding a control like pbVisible
are ignored.
- Moved piHeight and piMinHeight property definitions from control
classes into cWebBaseControl. The pbFillHeight property was already
defined there and most controls do support piHeight and piMinHeight
(even when it doesn't make sense).
- Changed psApplicationTitle and pbUpdateApplicationTitle into client
web properties so they can be overridden from JavaScript which is
especially useful when including a single view into a page.
- cWebFloatingPanel: New property pbHideOnEscape, if true the panel
hides itself when escape is pressed.
- cWebDateForm: Fixed several small issues (new in 19.1). Improved
focus logic.
- cWebColorForm: Improved focus logic. Added pbAutoShow property
(consistent with cWebDateForm).
- cWebListExpandPanel: Fixed expand list issue with checkboxes not
maintaining their value due to ghost elements used in animation.
- cWebList: Fixed JavaScript error when last column is hidden (new
in 19.1).
WebApp Framework 19.1.13.60
- Improved session logic so that it will not give errors when the
session has timed out while loading the webapp. So if you leave your
browser open for a long period of time after using a Web Framework
WebApp and then went back to that webapp you would see error 950,
now you will not see error 950 any more and just the login screen.
- The length of the key for page scoped server properties can now
be configured using the private piGenKeyLength property of the cWebServerPropHandler.
This might be necessary to reduce the chance of conflicts occurring.
- Changed the session key generation algorithm from using a UUID
represented in HEX values to a cryptographically proper random algorithm
generating unique values represented in Base64 strings. The usage
of Base64 instead of hex and not having the dashes in their increases
the number of unique keys reducing the chance of collisions. The new
piSessionKeyLength property on cWebSessionManager allows the session
key length to be extended for improved security.
- Disabling a form now only hides the prompt button when using the
drilldown style. This also fixes sync errors when pbOverrideStateOnShow
is set to false.
WebApp Framework 19.1.12.59
- Preliminary implementation of horizontal grid scrolling (pbAutoColumnSizing).
- Changed WebApp Packages to use server properties for the view stack,
navigation data and DDO states.
WebApp Framework 19.1.11.59
- cWebMenuBar & cWebToolbar now have a new pbFocusable property
that determines if the control takes the focus or not. By default
it will be true inside views and false outside of views. This solves
BT 7395.
- cWebListExpandPanel: Several improvements where key and click events
where bubbling up to the list while they shouldn't.
- cWebApp: Added new OnInitializeLocales event that is triggered
during initialization (when a client loads a page with the webapp,
just before OnLoad) that receives the client language and timezone
offset as parameters. The client language is in "en-US"
/ "nl-NL" format as reported by the browser. The timezone
offset is in minutes and should include the daylight saving difference.
WebApp Framework 19.1.10.59
- cWebListExpandPanel: Several improvements, it now respects piHeight,
the animation now looks better.
- cWebList: Improved scrolToCurrentRow logic which was broken by
the previous build.
WebApp Framework 19.1.9.59
- Removed the tasks enum from the mobile webapp template (replaced
by NamedValues).
- cWebResourceManager now trims paths it received as paths filled
out with spaces at the end could cause issues.
- The file upload components have been refactored to make them reusable
by separate controls.
- The HTML4 file upload support has been removed as HTML5 file
upload is supported by all the supported browsers.
- The drag 'n drop API primarily used by the file upload has
been refactored to better support other controls with drag 'n
drop features. It now does not render a full-screen mask any more,
this might also fix known issues where the mask somehow appeared
and stayed without reason.
- Improved error handling, made sure that if a table / column is
known for the error but no control error can be shown on the DEO it
will always add details about it to the error message. In some cases
(due to another bug) no view was known for the error causing the details
to not be shown.
- cWebListExpandPanel: New class that can render a panel inside a
list below a row. It can contain any kind of control and expands and
collapses with an animation.
- cWebList: The scrolling logic has been improved and now takes individual
row heights into account. This was needed for the cWebListExpandPanel
and prepares for flexible row heights.
- cWebTreeView: Fixed an exception when expandNode or collapseNode
where called before it was rendered.
- cWebList: Added new piLimitRows property that limits the number
of rows shown.
- WebOrderMobile: Extended sample with an expandable list panel
example.
- Note that a sample of the expandable panel can be found in
WebOrderMobile under Demo. Only the Touch themes have been adjusted
for this (the others still need to be done).
WebApp Framework 19.1.8.58
- History Management: The Refresh message of the view was updating
the URL during Navigation. That shouldn't happen as during the navigation
there is special logic which usually pushes states instead of replacing
states.
WebApp Framework 19.1.8.57
- • Added simplified API for showing YesNo dialogs from JavaScript.
oWebApp.showYesNo("Sure?", function(bYes){
if(bYes){ // do something }
}, this);
- cWebSlider: Added pbMouseWheelScroll property that can be used
to disable the cWebSlider from responding to the mouse wheel (as this
prevents scrolling of its container).
- Df_Flat_Desktop / Df_Flat_Touch: Fixed wrong class names causing
style of focussed tab buttons not to show.
- cWebGrid / cWebColumnCheckbox: Fixed bug causing the checkbox to
swallow clicks when a different column in the same row has the focus
(BT: 7374).
- cWebModalDialog: Removed duplicate div.WebWin_header element.
- History Management: Improved handling of invalid URLs by adding
special logic for refind errors.
- History Management: Finalized API.
WebApp Framework 19.1.8.56
- History Management: Improved handling of invalid URLs.
- History Management: Made new DataDictionary functions private.
WebApp Framework
19.1.8.55
WebApp Framework 19.1.8.54
- History Management: Changed handling of the default view, instead
of ignoring it by default the peStateMode property now determines
if it will be part of the URL.
- History Management: Zoom views now update their record ID on refresh.
So clicking the create record button will now update the URL.
- WebOrderMobile: More history management changes (DD's with piPrimaryIndex,
psStateViewName, peStateMode on dashboard).
- WebOrderMobile: Changed server of 'New line' button on ZoomOrder
view to order detail (which it should be).
WebApp Framework 19.1.8.53
- Fixed the server property handler which wasn't always marking itself
as inactive after processing a request. This caused errors when doing
a WebGet outside of Web Framework requests like in a custom web-service.
- Improved positioning of info / error balloon. It now properly handles
scrolling of parent containers.
- cWebGrid: Improved handling of row updates while inside the new
row. This should improve support for per cell saving from the OnChange.
- cWebGrid: Fixed error when grid has no columns or no rows.
- Df_Flat_Touch / Df_Flat_Desktop: Improved focus styles of buttons
in standard framework message boxes.
- cWebCardContainer: Fixed bug causing JavaScript errors when WebSetResponsive
is used on pbFillHeight (BT: 7331).
- cWebBaseDEO: A WebSet of psMask before the control was rendered
caused a JavaScript error preventing the view from rendering (BT:
7342).
- cWebBaseDEO: Removed client web properties pbAutoFind and
pbAutoFindGE that were not used by the JavaScript Engine.
- cWebList: Fixed search on lists with all data on the client (peDbGridType=gtAllData
/ gtManual or pbDataAware=false) when the column sorting was reversed
(BT: 7346).
- Designer: Disabled the close button of modal dialogs (BT: 7304).
- cWebAccordionContainer: Fixed a bug where controls inside the accordioncontainer
sometimes receive the focus while they shouldn't. This happens if
the accordioncontainer is inside a tab page and a different tab was
shown. It was caused by CSS inheritance (BT: 5357).
- cWebMenuBar / cWebToolBar: Improved focus behavior when being used
outside of the command bar (being a control).
- Fixed a bug in the server property system where large amounts of
server property data failed due to a pagination issue (BT: 7358).
- Added extra check to work around to prevent the error 4402 ( 'Object
.. is out of scope for WebGet ..') from happening when navigating
back using the breadcrumb. This issue is caused by a bug in the Google
Chrome password manager (BT: 7363).
- Fixed out of scope error which wasn't showing the object name any
more (since 19.0).
- cWebBreadCrumb: Optimized by only sending a single update per round-trip.
- cWebImageColumn: Extended AddImage with the option to provide a
tooltip.
- cWebServerPropStore: Added missing include statement.
- Updated the view loading logic for the WebApp Framework to support
the new history management features. The server now knows which views
are available on the client allowing it to only do an additional round-trip
if needed.
- New API's for history management (both low level and framework
logic level).
WebApp
Framework 19.1.7.52
- cWebApp:
Added psHash web property that can be used to retrieve the hash (part
after #) of the URL.
- cWebApp:
Added OnLocationHashChange event fired when the hash is changed by
the user / browser.
- cWebApp:
Added HistoryPushState function for adding history items.
- cWebApp:
Added HistoryReplaceState function for replacing the current history
item.
- cWebApp:
Added OnHistoryPopState event fired when a history item is popped.
- Implemented
preliminary history management for the drill-down model.
- cWebMenuButton:
Properly implemented pbAllowHtml.
- cWebMenuList:
Improved sizing logic.
- cWebList:
A refresh of the list now triggers a proper resize when pbScroll is
false (so the height might have changed).
- cWebFloatingPanel:
Added pbNaturalWidth property that sizes a panel horizontally to the
width of its content when using the float by control mode.
- Disabled
several optimizations of the Uglify JS minification / compression
process to improve the debug behavior using the source map.
- cWebDateForm:
Fixed the pbAutoShow logic which didn't work under modern browsers
any more.
- cWebDateForm
/ cWebDatePicker: Merged the separate DatePicker into WebDatePicker.
The WebDateForm now uses the WebDatePicker control rendered inside
a WebFloatinPanel (instead of having its own separate popup logic).
This is more consistent with the cWebColorForm.
- cWebList:
Fixed assertion that checks the number of columns for a row. It now
takes swipe buttons into account.
- cWebColumnCheckbox:
Improved FlipSwitch styles for Df_Flat_Desktop and Df_Flat_Touch which
were being clipped in some cases.
- Df_Flat_Desktop:
Changed alignment of data in lists and grids to improve compatibility
with WebColumnButton.
WebApp Framework 19.1.7.51
- Changed
the minification system from JS Builder to Uglify JS which performs
extra optimizations and provides a source map which allows debugging
without switching to the debug mode. This has made df-min.js 90KB
smaller.
See Also
What's New in DataFlex
2019 - 19.1