Skip to content

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 URLs:
  • 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 were 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 SetResponseStatus.

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 to WebDateForm when forwarding onFocus.
  • CSS: WebTreeView wasn't handling long item names very well and indentation 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 column checkbox 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.
  • cWebFileUploadButton: Now more compatible with cWebButton; it also supports 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 where the loading of translations was overtaken by the rendering of views (new in 19.1).
  • Ensured 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 are now handled 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 losing 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 being 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 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. DEOs 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 navigation type 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. Previously a long idle period could show error 950; now the login screen is shown instead.
  • 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 dashes 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 were 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 and the animation looks better.
  • cWebList: Improved scrollToCurrentRow 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 anymore; this might also fix known issues where the mask somehow appeared and stayed without reason.
  • Improved error handling: ensured 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 were 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 focused 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

  • History Management: Fixed an issue where the Dashboard would not be shown in the breadcrumb when using NavigateToStateHash.
  • Login.wo: Moved code hiding the header from OnLoad to OnShow so that it also executes when showing the login screen a second time. With the new view loading logic from 19.1 the OnShow doesn't cause an extra round-trip so there is no delay/screen flashing.
  • Added page title logic that updates the page title (independent of history management). If pbUpdatePageTitle of cWebApp is set to true the page title is automatically updated to the webapp title (psApplicationTitle of cWebApp) combined with the caption (header breadcrumb caption for drilldown). This makes the history menu of the browser nicely show the view name. OnGeneratePageTitle can be augmented to customize the logic.
  • Updated PKG_Revision (which was still 0) for both Windows.pkg and WebAppBase.pkg.

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 (DDs 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 prevent 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 APIs 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 anymore.
  • cWebDateForm / cWebDatePicker: Merged the separate DatePicker into WebDatePicker. The WebDateForm now uses the WebDatePicker control rendered inside a WebFloatingPanel (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 90 KB smaller.

See Also