Alpha Anywhere 4.6 Videos

IN THIS PAGE

The videos below were published for Alpha Anywhere 4.6.

Alpha Anywhere 4.6.0

Alternating Row Colors in a List Control

In this video, we show how you can configure a List control to show alternating colors for even and odd rows.

List Control Map Layout

A List control can have multiple Layouts. The most common Layouts are columnar and freeform. But a List can also have a Kanban layout and a Map layout. The Map layout displays a Map control in the List and shows markers on the map for each row of data in the List.

In this video, we show how the Map layout is configured.

Two-factor Authentication

Demonstration

Two-factor authentication is more secure than single-factor authentication because even if a user's password is stolen, the user account is still protected because the person who stole the password will likely not be able to get the authentication code to complete the login to the application.

In this video, we demonstrate a login component that utilizes two-factor authentication.

Configuring the Extended User Information Table

Before you configure a web project to use two-factor authentication, you first have to create an Extended User Information table for your web project.

This video shows how to create an Extended User Information table.

Configuring a Web Project to use Two-factor Authentication

In order to use two-factor authentication in a web project you must configure settings in the application Project Settings.

In this video, we show how two-factor authentication settings are defined.

Setting User Preferences for Two-factor Authentication

Two-factor authentication is a preference setting for each user in your application. Some users may elect to turn two-factor authentication on, while others may prefer single factor authentication. If a user turns two-factor authentication on, they must specify which option they wish to use - SMS, Email or Google Authenticator.

A sample UX component is provided to allow users to set their two-factor authentication preferences. In this video, we show how to use this sample UX component.

Chunked Responses - Sending Intermediate Responses to the Client

Normally, when you make an Ajax callback from a UX component, the Xbasic function that handles the callback completes its processing and then returns Javascript to the client. In some uses cases where your Xbasic function takes a "long" time to execute, you might want to send some type of intermediate message to the client telling them that the function is still processing and perhaps letting the user know what stage the function is at.

In order to send back intermediate responses to the client while the Xbasic function is still processing, you can set the Ajax callback to allow chunked responses.

In this video we show how you can configure an Xbasic function to do chunked responses.

Saving and Restoring List Column Layouts

The Show/hide list columns Defined Control can be used to give the user the ability to show, hide, and reorder columns in a List's layout. The layout can be saved, allowing you to later restore the layout the user created when they return to the application.

When the user changes the layout of the List columns, the onListColumnSelectorChanged event is triggered. This event can be used to persist the List's modified layout.

In this video, we show how to use the UX component's .persistListColumnLayout() and .restoreListColumnLayout() methods to save and restore the Column layout for a List control.

Working with Git Repositories

The Web Control Panel is tightly integrated with Git and GitHub. You can make any Web project into a Git repository and you can connect this repository to a remote GitHub repo. You can perform many of the basic Git commands (such a committing files, pushing to a GitHub repository and pulling from a GitHub repository directly from menus on the Web Control Panel.

In this video, we show how to make a Web Project into a Git repository, how to connect this repository with a remote GitHub repository, how to push files to the remote Git repository and how to create a new Web project that is cloned from a remote GitHub repository.

Submitting TransForm Data Directly to a SQL Database

Alpha TransForm is a cloud service running on AWS with its own database back-end to store forms and their associated data. If you would prefer to also store submitted form data in another database, you can use the onSubmit event to save form data to your SQL database.

In this video, we show how to create a TransForm onSubmit event to store form data in your own SQL database using the TransForm onSubmit Genie in Alpha Anywhere.

Alpha Anywhere 4.6.1

Debugging Javascript Code

Alpha Anywhere has an embedded version of Chrome, which means you can use the Chrome debugger to debug your client-side Javascript code.

In this video, we show how you can step through client-side Javascript code in the Chrome debugger and how you can use the debugging Console window to watch the value in different variables in your Javascript code.

Using a Genie to Expose Tables in a SQL Database

Alpha Anywhere has a powerful REST API feature that allows you to create REST APIs for many different tasks. A common use case for a REST API is to expose data that is stored in a SQL database. The REST API Genie makes it easy to create an API that allows data to be retrieved from a SQL database and also to be updated/inserted.

In this video, we show how you can use the Genie to create a REST API that exposes data in selected tables in a SQL database.

Using HTML Templates in the List, ViewBox and Free-form HTML Layout Control

The UX builder comes with several attractively designed HTML templates than can be used when designing List controls, ViewBox controls and Free-form HTML Layout controls. In this video we show how to use the pre-defined HTML templates to create some very attractive UX components.

Alpha Anywhere 4.6.1.1

No videos were released with Alpha Anywhere 4.6.1.1

Alpha Anywhere 4.6.1.2

Debugging Server-side Javascript

You can run Javascript code from Xbasic using the xbasic_execute_javascript() function. You can also debug into the Javascript code while it is executing as shown in this video.

Step Indicator Control - Repopulating and setting Direction

The Step Indicator control is a convenient way for showing progress through a task. In this video, we show how the list of steps can be dynamically changed at run-time and how the direction of the steps can be changed to support right-to-left languages such as Hebrew and Arabic.

Alpha Anywhere 4.6.1.3

Weather Control

The UX Component comes with a pre-build control for displaying weather for a particular city. The weather data comes from Accuweather.com and you are required to get an API key from Accuweather.com in order to use the control.

In this video we demonstrate how you can add a weather control to a UX component.

In-place Editing in a List Control

Overview

By default, a List control is used to display data, not to edit data. It is possible to edit the data in a List using either a List Detail View, or using in-place editing.

In this video, we show how you can configure a List to use in-place editing.

Dropdown Control

In this video, we show how a dropdownbox can be defined for in-place editing of data in a List.

Dynamically changing choices in a dropdownbox at runtime

In this video, we show how the choices in a dropdown box used for in-place editing can have the choices shown in the dropdown box dynamically changed at run-time.

Putting all rows into edit mode

A common pattern when using Lists that allow in-place editing is to configure the List so that all rows in the List are in edit mode (rather than requiring the user to put individual rows into edit mode before making edits).

In this video, we show how you can execute Javascript to put all of the rows in the List into edit mode.

Free-form Layouts

In place-editing in a List control can also be used in free-form List Layouts.

In this video, we show a List that has a free-form layout and how in-place editing can be used.

Using in-place editing to edit data in a List based on a SQL table

To edit data in a List that is based on a SQL database, the List/Detail View pattern is typically used. However, it is also possible to use in-place editing in a List and then persist the edits made to the List back to the SQL database.

In this video, we show how a List that is based on a SQL database is configured to allow edits to the SQL database to be made using in-place editing in the List.

Data validation for in-place editing

When you use in-place editing to edit data in List row you can use Javascript code to validate the edited data before it is saved.

In this video, we show how a validation rule is added to check that the user enters a value into the City field.

Auto-suggest

You can define an auto-suggest control for in-place editing. You can also dynamically filter the choices in the auto-suggest based on other data entered into the List row being edited.

In this video, we show how an auto-suggest control that shows choices from a SQL database is defined. We then add a dynamic filter to the auto-suggest so that it only shows choices that are filtered by some previously entered data in the List row.

Displaying images in a pick-list for Edit-combo or Auto-suggest

When you define the data to be shown in the pick-list for an edit-combo or auto-suggest control, you can include images. In this video, we show how the pick-list for an edit-combo is configured to display images

Displaying multiple columns in a pick-list for Edit-combo or Auto-suggest

When you define the data to be shown in the pick-list for an edit-combo or auto-suggest control, you can specify that multiple columns of data should be shown in the pick-list. You can also specify that when the user makes a selection from the pick-list that other fields in the List row you are editing should be filled in. In this video, we show how this is done.

Enable/Disable controls

When you are editing the data in a List row using in-place editing, you may want to dynamically enable/disable controls in the row.

In this video, we show how you can define an enable event to dynamically disable controls in the List row you are editing.

Decode coded Values

It is common when designing databases to use coded values for certain fields (i.e. a category field might have values of 1, 2, 3, etc. rather than Beverages, Condiments, Confectionary, etc.). When displaying the data in the List you might like to display the decoded value for each coded value. In this video, we show how this is easily done.

Dropdown Menu

A common pattern when designing a ControlBar is to include buttons on the ControlBar that display dropdown menus. These can either be cascading or expanding menus. In this video, we show how you can add a dropdown menu to a ControlBar.

Alpha Anywhere 4.6.1.4

No videos were released with Alpha Anywhere 4.6.1.4

Alpha Anywhere 4.6.1.5

No videos were released with Alpha Anywhere 4.6.1.5

Alpha Anywhere 4.6.1.6

File Upload using Drag and Drop

You can upload files to either Amazon S3 or to your Alpha Anywhere server by dragging and dropping files onto a 'drag drop area' on your UX component.

This video shows how to configure drag and drop file upload.

Generate a File in an Ajax Callback and then Download it

In UX and Grid components you might want to make an Ajax callback to the server and then generate a file on the server which the user can then download. The file that you generate on the server might be an Excel file, a PDF document, a Word document, etc.

In this video, we show how you can create the Xbasic function that handles the Ajax callback, creates the file and then generates the necessary Javascript to send back to the browser in order to download the file.

Alpha Anywhere 4.6.1.7

Keyboard Friendly Edit-Combo

In order to make a UX component that is "keyboard friendly" (i.e. minimizes the need for the user to use the mouse to tap on a button to open a pick-list), the edit-combo control can be configured to open automatically as soon as the user tabs into the control, and then once the user makes a selection from the pick-list, you can set focus to the next control.

in this video, we show how you can configure the edit-combo to behave in this "keyboard friendly" manner.

Real-time Messaging using the Pusher Service

Real-time applications are typically built using web-sockets. However, it can be tricky to set up web-socket applications, especially if your application is behind a load balancer. The 3rd party Pusher service (www.pusher.com) makes it very easy to build real-time applications that allow you to broadcast messages on a 'channel'. All clients that subscribe to that channel will receive the message.

In this video, we show how the UX component can be configured for real-time applications using the Pusher service.

Real-time Location Reporting using the Pusher Service

In this video, we show how you can build a real-time location reporting application. When a user 'reports' their location, a marker is automatically added to a map control showing the location of the user.

Alpha Anywhere 4.6.1.8

In-place editing - Capturing Edited Rows and Old Values

(Advanced Users) When you are editing the data in a List row using in-place editing, and you have the List Detail View turned on, and the List is based on a SQL table, Alpha Anywhere generates the SQL statements to perform the CRUD operations automatically. However, there may be situations where you want to generate your own SQL CRUD. To do this, you will need to know which rows have been edited, and for each edited row you will need to know the current values in each List row as well as the original values.

In this video, we show how this can be done.

Adding Tokens to a SQL Database

The Multi-select Tokens control allows you to select tokens from a pick-list and (optionally) type tokens into the control. You can configure the control to only allow tokens that are in the pick list or to allow the user to type in any token value. If the user types in a token value that is not in the pick list you can fire a notInList event and add the token to the pick list (and to the database table that backs the pick list).

In this video, we show how a token value that a user enters is added to a SQL table.

Alpha Anywhere 4.6.1.9

Reading Information (such as record count) from the List's state Object

A common requirement with a List control on a UX is to know how many records are in the List (and in the case where the List is paginated, how many pages of data the List has and what page you are currently on). For Lists based on SQL tables, you might also want to know what the current filter and order for the List are. All of this information is available in the List's state object.

In this video, we show how the record count can be read from the List's state object.

Alpha Anywhere 4.6.2.0

Enabling and disabling PanelCards in a PanelNavigator

The PanelNavigator is commonly used in building mobile applications. This control, when in Carousel mode allows you to swipe through a series of PanelCards in the order in which the PanelCards were defined. However, in certain applications you might want to dynamically turn a PanelCard off or on so that it is skipped when swiping through the PanelCards in a PanelNavigator.

In this video, we show how this is done.

Rotating an Image with Animation

A common UI technique is to rotate an icon (such as a 'hamburger' menu icon) when the icon is clicked. Typically, animation is used when the icon is rotated.

In this video, we show how you can rotate an image using animation.

Displaying Logical Values using a CheckBox

It is common to display logical values in a List. You can use a switch control, a checkbox style control, or HTML text to indicate if the logical value is true (on) or false (off).

In this video, we show how a Switch control can be configured to behave like a logical checkbox with custom images for the on and off states.

Selecting Active ControlBar Layout Based on Current PanelCard in a PanelNavigator

In mobile applications it is common to have a PanelNavigator with multiple PanelCards. Each PanelCard should have its own ControlBar. An efficient way to design this is to define a single ControlBar for the PanelNavigator and then to select the active Layout in the ControlBar depending on which PanelCard is currently visible.

In this video, we show how this can be done.

Alpha Anywhere 4.6.2.1

There were no videos were released with Alpha Anywhere 4.6.2.1.

Alpha Anywhere 4.6.2.2

GraphQL

Building a Service

In this video, we show how you can build a GraphQL API to expose data in a SQL database.

Testing your Service

Once you have defined a GraphQL API you can use the built-in tester to test your GraphQL API.

Testing your Service - Using Variables

You can use variables in your query parameters rather than using hard coded literal values.

Testing your Service - Getting Multiple Records

You can use a GetMany query to return multiple records. When you return multiple records, you can specify a page size, number of records to skip over etc.

Paginated Queries

When you use a GetMany query, you can do paginated queries.

Update Mutations

Using an Update mutation you can perform Updates on any of the tables exposed in the API.

Add Mutations

Using an Add mutation you can add records to a table.

Delete Mutations

Using a Delete mutation you can delete records to a table.

Executing a GraphQL Query Directly from the Browser

When you execute a GraphQL query, you can either do the query in server-side code or client-side code.

In this video, we show how you can make a request to a GraphQL endpoint directly from the browser and then populate a List control with the data returned by the query.

Two-sided Card Layout

You can created two sided card layouts in a UX. You can add various controls to the "front" of the card and other controls to the "back" of the card. When the user clicks an icon, the card flips from front to back (or back to front) using a 3D animated transition. The two-sided card layout can be added to the ViewBox, List and Free-form HTML Container controls.

In this video, we show how to add a two-sided card Layout to each of these control types.

Enabling the User to Select a Style at Runtime

When you build an Alpha Anywhere application, you typically select the style for the application (e.g. Alpha, Alpha-Red, etc.) at design-time. However, you might want to allow the user to select a preferred style a run-time.

In this video, we show how you can allow the user to select the style at run-time.

Building Apps using Ionic Appflow

Ionic AppFlow is a service offered by Ionic for building iOS and Android PhoneGap application. It is tightly integrated in the Alpha Anywhere PhoneGap Genie.

Setting Up a Cloud SQL Database

Alpha Software provides a free cloud SQL database for use during development.

In this video, we show how to set up a MariaDB cloud SQL database server and how to install the sample Northwind database.

Creating a Named Connection String for your Alpha Cloud SQL Database

In this video we show how to create a Named Connection string that points to your Alpha Cloud SQL database so that you can use the database in your Alpha Anywhere applications.

Using 3rd Party Tools (e.g. Navicat) with your Alpha Cloud SQL Database

It is common for developers to maintain the SQL databases used in their Alpha Anywhere applications using 3rd party tools (such as Navicat, SQL Server Management Studio, pgAdmin, etc.)

In this video, we show how you can connect Navicat to an Alpha Cloud MariaDB server.

Creating Signing Certificates for iOS

In order to build a PhoneGap application for an iOS device you will first need to create a code-signing certificate. You will also need to have an Apple Developer account. Creating this certificate can be tricky, especially if you do not have a Mac.

In this video we show how the iOS Certificate Genie in Alpha Anywhere makes it easy to create the necessary certificate, without requiring that you have a Mac.

List Control Column Actions

When you turn on Column Actions for a columnar Layout in a List control, an filter icon is shown in the column header for each column in the List. The column actions provide a very powerful and convenient way for filtering the data in a List.

Window Width - Match

When you add an edit-combo or auto-suggest control to a UX, you might want the width of the window that displays the pick-list to be the same as the width of the control itself. (Much like the width of the dropdown window matches the width of a select control). This is easily achieved by setting the width of the window in the edit-combo or auto-suggest builder to 'match'.

The width of dropdown windows can also be set to 'match'.

In this video we show how the 'match' window width setting is used.

Floating Textbox Labels

A popular design pattern (for example the Gmail login screen) displays the label for a textbox as a watermark in the field. When the user clicks in the field to begin typing, the watermark animates into position above the textbox.

In this video we show how animated textbox labels can be specified.

Creating Sub-themes for Inherited Styles

Sub-themes allow you to define different appearances for different classes of controls on a UX (for example an input control has a 'base' and 'primary' sub-theme by default).

In this video, we show how you can create a new sub-theme called 'primaryRounded' for an input control on a UX that uses the Alpha-Dark-Green style (a style that is inherited from the 'Alpha' style). The new sub-theme will have a rounded border around the input control.

Alpha Anywhere 4.6.2.3

Encrypting Data in a SQL Table

You can use a List control with a Detail View to display data from a SQL table and to update the data in the table. You might want to encrypt certain fields in the SQL table.

In this video, we show how you can encrypt the data in a field in a SQL table when updating the table from a List control with a detail view.

It is also possible to encrypt data in certain fields when using the Grid component.

Encrypting/decrypting existing data in a Table

You may have an existing table that is being used by a List control in one of your UX components, Say that the table has field and you would like to encrypt the data in that field. In a previous video we have shown how you can enable encryption for a field in a List, but this only affects edits going forward. You might want to encrypt all of the existing data in that field in your table.

In this video, we show how the a5_encrypt_table_field() function can be used to encrypt (or decrypt) existing data in a field in a SQL table.

Alpha Anywhere 4.6.2.4

How to Add a Badge to a Button

A common UI pattern in applications is to add a badge to buttons to convey some information. For example, you might have a button that shows orders and a badge shown over the button would show how many orders have been received. You can add badges to stand-alone buttons and also to buttons that are shown in a Control Bar.

In this video, we show ho you can add a badge to a button and also how you can dynamically set the badge value.

How to Display PDF Files using the PDFViewer Control

In this video, we show how you can display the contents of a PDF file in a UX component using the PDFViewer control.

Alpha Anywhere 4.6.2.5

Styling Buttons when the Render as ButtonList Property is checked

When you add radio button or checkbox controls to a UX you can choose to render the controls as a Button List. In this video we show how the buttons can be styled.