Version 9.7 of PHPRunner, ASPRunnerPro and ASPRunner.NET

Beta version of PHPRunner 9.7, ASPRunnerPro 9.7 and ASPRunner.NET 9.7 is here. Downloads links:
Here is the list of new features in this update.

1. Improved password hashing

Option to use industry standard bcrypt hashing algorithm. Send password reset link to user's email, link expires in 24 hours.

2. Code snippets in dashboards

You can insert any sort of code snippet as dashboard element. This can be some code that displays current weather, calculates order totals, displays number of active users or even displays a Youtube video.
See this live demo for inspiration.

3. 'Sort by' dropdown control

When this option is useful:
  • Vertical or columns List page mode that previously didn't have sorting options
  • 'Sort by' control in mobile mode
  • Need to setup application specific sort modes
You can also choose if users still can sort data by clicking on column headers.
Here is how it looks in generated application.

4. Grid row/field click actions

This one is pretty cool, you can assign actions like open a certain page, make record selected, expand/collapse details or run a custom code to row/cell click.
Check this live demo.
Click CustomerID cell to open Orders view page in popup.
Click OrderID field to retrieve current order total and display it in OrderID field.
Code for this example:

Client Before event

  1. // pass OrderID to Server event  
  2. params["OrderID"] = row.getFieldValue("OrderID");  

Server event

  1. // run SQL Query to retrieve order total  
  2. $result["total"] = DBLookup("select sum(Quantity*UnitPrice) from 
  3. `Order Details` where OrderID=".$params["OrderID"]);  

Client After event

  1. // change cell background  
  2. row.fieldCell("OrderID").css('background''yellow' );  
  3. // add order total to OrderID cell content  
  4. row.fieldCell("OrderID").html(  
  5.    row.fieldCell("OrderID").html()+"<br>Total: "+result["total"]);  

5. New APIs

If you enjoy pushing your web applications beyond built-in functionality you going to love this update. We have added five new APIs in this version that will help you build modern applications. Here are some highlights and use cases. See full list of functions each API provides in updated manual.

Security API

Get username or user group of current user. Get or set OwnerID or permissions for any specific table. Verify username and password. Log user in automatically from your code. Check if user is logged in, if user is an admin, if user is a guest.

Labels/Titles API

Things like change project logo on the fly, modify table captions, modify breadcrumbs display format, modify field label or tooltip etc.

Tabs/Sections API

Make a tab active, enable/disable a tab, add a tab in runtime, change tab header or content, expand/collapse a section etc.

Search API

Lets you run a totally custom searches. For instance you have Order and OrderDetails tables setup as Master-Details. With the help of Search API you can display all orders that include a specific product in OrderDetails.

Ajax row click API

You can see an example of this API usage in previous code sample where we dynamically display order totals in OrderID column. You can change any field visual appearance or content using this API. Besides using it in 'Click action' event you can also access this API from any button added to the grid.

6. Improved appearance of cross-tab reports

Try scrolling down and right to see freezing columns and header.

7. Form field placeholders

Placeholders are in-place tooltips that disappear as soon user starts typing something in that field.