Category: Development

Improvements to Booking Types

The next update (v4.17) to our room booking and resource scheduling system, MIDAS, is just around the corner. So we’re giving you a first look at some of the new features and improvements in v4.17.

In this post, we’ll look at the improvements coming to “booking types”. Booking Types allow you to color-code bookings based on their “type” making them easier to spot in the booking grid. Furthermore, you can assign discounts to each booking type. This allows charging different rates depending upon the type of booking.

You can also set booking types to be “tentative“. Bookings assigned as “tentative” will automatically be removed if not confirmed in a timely manner.

This time last year, for v4.14, we introduced the ability to set a default booking type on a per-client basis. For v4.17, we’re also giving you the ability to specify a global default booking type. If set, then any bookings added without a booking type being specified, will automatically be assigned the default type. This is especially useful if you’ve “hidden” the booking type selector from view, as you can still assign bookings a default booking type.

Additionally, following customer feedback, we’re making it possible for you to limit which booking types are available for selection on the public web request/booking screens. Many organizations have “internal” booking types/classifications. They may not wish to make these available for selection by external clients. This new feature will allow this to be achieved!

You’ll find the new “Public?” and “Set as Default?” options on the Manage Booking Types screen. This may be accessed via MIDAS Admin Options → Manage Booking Types. These settings can be set independently for each of your booking types. If a booking type is set as being the default, this will be indicated by an “*” after its name in the “All Booking Types” list.

Set Booking Types as Public and/or Default in MIDAS
Set Booking Types as Public and/or as the Default type

Custom Resource Categories

So it’s been a little while since we last blogged. But that’s because we’ve been busy working away on the next update to our room booking and resource scheduling software, MIDAS.

Over the next few posts, we’re excited to give you a first look at some of the new features and improvements in this forthcoming update.

First up – Custom Resource Categories!

“Resources” are additional items/services you can add to your bookings. Until now, resources have been split into three distinct categories; “Equipment”, “Staffing”, and “Consumables”.

The differences between each of these three categories are outlined below:

Equipment:

Resources categorized as “Equipment” are those which are charged per booking, irrespective of the length of a booking. For example, a Flip Chart may be added to this section, as its charge would be the same for 30 minutes or 2 hours. The “Quantity Available” allows you to define how many flip charts are available site-wide at any one time. So, if you own 5 flip charts, set the “Quantity Available” to 5. MIDAS will then not allow more than 5 flip charts to be in-use at the same time.

Consumables

Resources categorized as “Consumables” are those which would only be used one-time, and cannot be reused. For example, paper for a flip chart could be classed as a consumable. The “Quantity Available” figure is very fluid in this category. For example, you may have bulk purchased 100 flip chart paper pads. You would therefore set the “Quantity Available” to 100. However, unlike the other categories, whenever consumables are added to a booking, the remaining “Quantity Available” of that resource decreases by the amount added. So once all 100 flip chart pads have been used, they will no longer be able to be added to any further bookings. That is, until your stocks are replenished, and the “Quantity Available” updated accordingly. Consumables, like Equipment, are charged per booking.

Staffing

Staffing is a section to list human resources you have available to clients. These are charged per hour when added to bookings. For example, you may have 3 AV Technician’s on staff, with an hourly rate of $40. Adding these details to the Staffing section of resources allows your staff to be allocated to bookings with the client charged accordingly.


Following requests from a number of our users, for MIDAS v4.17, we’re adding more flexibility. You can now add your own custom resource categories to compliment the three default categories:

Custom Resource Categories in MIDAS
Custom Resource Categories

This will be beneficial to organizations with large numbers of resources. Resources can now be broken down into smaller groups.

Each custom resource category you add can be named, and resources assigned to it accordingly. You can also specify how resources assigned to the category should behave in terms of billing and remaining quantities. Items in custom categories can behave as either Equipment, Consumables, or Staffing for these purposes.

When adding resources to bookings, additional tabs will be shown on the Add Resources dialog for each of your custom categories:

Adding Resources From Custom Categories to Bookings in MIDAS
Adding resources from custom categories to bookings

We believe this new feature offers even more flexibility in managing your resources along with your venues in MIDAS!

You can become more familiar with how “Resources” work within MIDAS in our short video tutorial:

How To Setup Resources & Add Them To Bookings

How to setup resources and add them to bookings

Upcoming New Features in the MIDAS API

To coincide with our next release of MIDAS, v4.16, we’ll also be releasing an update to the optional MIDAS API.

Our optional API access addon offers a programmatic and bi-directional interface to a MIDAS scheduling system.

The API can be used to extract data from a MIDAS system. This data can then be processed and used within your website and applications.

The API can also be used to make changes to settings and data within a MIDAS system. For instance, the API could be used to automate the adding of new bookings.

Or, the API can be used to interface MIDAS with other 3rd party software apps…. the possibilities are near endless!

API

To further increase the power and usefulness of the MIDAS API, we’re adding a couple of significant features in the forthcoming API update:

NEW: Command Line Support

Until now, all calls to the API had to be made via HTTP transactions. With the next update, you’ll also be able to make API calls directly from the command line! (self hosted editions only). API calls made in this way have the added benefit of being significantly more efficient and faster (assuming the call is made from the command line on the same server as the MIDAS system), as they do not require an HTTP transaction to be conducted.

To make API calls from the command line, simply call “api.pl” (located within your server’s MIDAS directory) and pass API parameters and values via command line switches.

For example, to retrieve the currently installed version of MIDAS from the Windows command line (cmd):

A MIDAS API call made from the Windows Command line (cmd)

…or from Windows PowerShell:

A MIDAS API call made from Windows PowerShell

NEW: Optional JSONP Support

By default, the MIDAS API outputs in JSON format. However following feedback from API users, we’re also introducing optional JSONP support with the next update to the API.

If you don’t know what JSONP is, then you probably don’t need it!

JSONP is a method commonly used to bypass the cross-domain policies in web browsers. Typically, modern browsers won’t allow you to make AJAX (Asynchronous Javascript) requests from one domain to another domain perceived to be on a different server.

For instance, if your MIDAS system is running on server A, and you wish to make client-side API calls through Javascript, you would typically only be able to make such AJAX requests from pages residing on server A itself. Attempting to initiate an AJAX request for server A from server B would be blocked by the user’s browser.

JSON and JSONP behave differently on the client and the server. JSONP requests are not dispatched using the XMLHTTPRequest and the associated browser methods. Instead, a <script> tag is created, the source of which is set to the target URL. This script tag is then added to the DOM (normally inside the element).

JSONP support in the MIDAS API (which is disabled by default) can be enabled via the API settings screen.

WARNING: Before enabling JSONP support, you should instead look to use CORS (Cross Origin Resource Sharing) wherever possible, as JSONP has inherent security risks as it injects Jasacript code directly into your web pages

With JSONP support enabled, you’d then be able to pass the name of a Javascript function in a “callback” parameter along with your API calls.

Consider a simple API call to retrieve the version number of MIDAS (passing the “action” parameter with a value of “get_setting“, and a “setting” parameter with a value of “version“). The typical JSON response would be:

{"version":"4.16"}

Now consider the same API call, with JSONP support enabled, and an additional “callback” parameter passed with a value of “myfunction“. The JSONP response would then be:

myfunction({"version":"4.16"})

The “callback” parameter must contain the name of an existing Javascript function on the calling page.

Upon receiving the JSONP response, the user’s browser will execute the “myfunction” Javascript function, passing the JSON data {"version":"4.16"} to it accordingly.


Improvements in Importing Data

We’ve made a number of improvements for the upcoming v4.16 release of our MIDAS software when it comes to importing data from 3rd party calendars/booking systems, namely:

1) Faster importing of CSV data

We’ve managed to significantly improve the import speed of CSV data, which in previous versions could become very slow/sluggish depending upon a combination of settings in MIDAS and the amount of data being imported

2) Improved CSV support

MIDAS v4.16 now better handles instances where CSV data fields themselves contained a record delimiting character.

For example, take the following CSV (Comma Separated Values) line:

Item 1,Item 2,Item 3,"Item 4a, Item 4b",Item 5

Previously MIDAS would incorrectly analyze the 4th item as being two separate data items, “Item 4a” and “Item 4b”, instead of a single data record.

This behavior is now corrected when importing data into MIDAS v4.16.

3) Support for importing bookings with resources

Until now, whilst you could import bookings into MIDAS, it was not possible to “map” data – including resources – to the resources database within MIDAS.

We’ve addressed this for v4.16 and you can import resources along within your booking data.

To be able to import resources along with your bookings, you’ll need to ensure that your resource data falls within a single “column” in your CSV data file. MIDAS will then parse this data and attempt to determine the applicable resource and quantity.

For example, if you wish to import a booking which has two laptops and one data projector assigned to it, your CSV data field for this should be in one of the following supported formats:

  • “2 Laptop, 1 Projector”
  • “2 Laptop; 1 Projector”
  • “x2 Laptop, x1 Projector”
  • “x2 Laptop; x1 Projector”
  • “2x Laptop, 1x Projector”
  • “2x Laptop; 1x Projector”
  • “2No. Laptop, 1No. Projector”
  • “2No. Laptop; 1No. Projector”

Click here to continue reading about some of the other new & improved features coming in MIDAS v4.16!