Saturday, November 30, 2013

Assigning colors to database records, for use in Calender views

We have now enabled an option to show entries in calendar view with configurable background and text colors in your favorite online database builder.

To use this feature, you need to add 2 new attributes and provide them with aliases as backgroundColor and textColor. You can assign the colors directly in forms (selecting from a list of choice-values) or you can assign them automatically using formula.

When the calendar views are displayed, iFreeTools will check to see if there is an attribute with alias as backgroundColor and textColor within the record, and if so, it will use those attribute's values for the calendar rendering.

As an example, let us consider a database of issues, reported by customers. If the issue records had a Severity attribute, which can take values as Critical, Major, Minor, and Cosmetic and if we wanted to view the entries in the calendar, such that the background color is based on this Severity, using the following colors for those severity values :

Severity : CriticalMajorMinorCosmetic

Then, we can add formula attributes to set the required color values for the records, so that they are used in the calendar view. Our sample app to showcase this new feature will similar to the issue tracker application we had built in one of the earlier walk-through, with the following attributes :
  • Title attribute as Single-line Text.
  • Description attribute as Multi-line Text.
  • Steps to reproduce attribute as Multi-line Text.
  • Severity attribute as Multi-line Text with choice values Critical, Major, Minor, Cosmetic & alias as severity.
  • Background Color attribute as Single-line Text with alias as backgroundColor & formula expression as :
    switch(severity == "Critical", "red", severity == "Major","orange", severity == "Minor", "yellow", severity == "Cosmetic", "lightblue").
  • Text Color attribute as Single-line Text with alias as textColor & formula expression as :
    iif(severity == "Critical", "white", "black").
  • Status attribute as Single-line Text with choice value as New, Accepted, Closed & alias as status.
  • Tester attribute as Lookup field (Reference), with Refers To as User.
  • Date Logged attribute as Date with formula expression as :
     iif(dateLogged, dateLogged, today()).
  • Date Closed attribute as Date with formula expression as :
     iif(status == "Closed", iif(dateClosed, dateClosed, today()), None).
Now assuming we also wanted to mark the closed issue as green, the formula for Background Color can be changed to be similar to the one given below :

iif(status == "Closed", "green", switch(severity == "Critical", "red", severity == "Major", "orange", severity == "Minor", "yellow", severity == "Cosmetic", "lightblue"))

The configuration of the Attributes is given below for reference:

We can now proceed to add entries into the issue records and they would get assigned with background and text colors based on the formula expressions we have specified.

The following image shows the calender view with some sample entries having the configured background and text colors.

Existing entries will have to be re-indexed once (from under More Actions > Re-index, in the list views) to have the formula attributes updated.

Hope you like the new feature. Feel free to let us know your feedback and suggestions.

Tuesday, October 29, 2013

Specifying default values for form fields, using expressions

iFreeTools Creator, your easy web-based database software built for hosting on Google App Engine, now supports specifying default values for attributes in forms. The default values can be configured using the Default Value Expression in Attribute definition.

Expressions should return the result in the expected data-type. For details on using expressions, you may refer to our help docs.

Sample default value expression for each data type are given below:

Data Type


Single/Multi-line Text

  • "Velachery"
    Text values have to be provided within quotes.
  • val_from(user(), "Name")
    to set the currently logged-in user's name.
  • val_from(user(), "Email Id")
    to set the currently logged-in user's email-id.
Yes/No checkbox (Boolean)

  • True
  • False
  • val_from(user(),"Role") == "admin" to mark as Yes, if the current user has admin access.
Number Integer/Decimal numbers
  • 1
  • -2
  • 33.5
  • -44.75
  • val_from(fetch_one("Fee Details", "Year":year(), "Month":month()}), "Fees"))
    to fetch the values form an existing database record, in this case, from Fee Details entity, which matches the condition of having the Year attribute as the current year and the Month attribue as current month. From this matching record, we get the default-value from the Fees attribute.
Single line text - Choice Value

  • "Cash"
    Any of the choice values can be provided. For example, the above is valid if the choice values were : "Cheque", "Cash", "Bank Transfer"
  • today()
  • today() + timedelta(5)
    to set the date value as 5 days from the current date.
Date and Time
  • now()
  • now() + timedelta(0,3600*10)
    to set the date-time value as 10 hours from the current date-time.
  • key_id(val_from(fetch_one("Default Values",{}), "Default Profile Image"))
    to fetch the image form an existing database record, in this case, from Default Values entity, having an image-attribute with name as Default Profile Image.
Geographical Location (Geo Point)
  • "13.1207829,80.2377078" 
    in case you know the co-ordinates of a specific location, the value has to be provided within quotes.
  • val_from(fetch_one("Default Values",{}), "Default Location") 
    to fetch the location form an existing database record, in this case, from Default Values entity, having an geo-point-attribute with name as Default Location.
List (with string values)
  • ["English", "Spanish", "French"]
  • val_from(fetch_one("Default Values",{}), "Default Languages")
    to fetch the values from an existing database record, in this case, from Default Values entity, having an list-attribute with name as Default Languages.
Lookup field (Reference)
  • key_id(fetch_one("Teacher",{"Name":"John Smith"}))
    to fetch the values from an existing database record, in this case, from the Teacher entity, having Name as John Smith.

Hope you like our new feature. If you need assistance in using this feature or if you have suggestions, feel free to use the feedback form in our application.

Sunday, June 30, 2013

What's Cooking : Internationalization & Localization support

We are glad to share the news that iFreeTools will soon be supporting internationalization and localization.

Once available, you will be able to select the language in the App Settings and the application will be rendered using the selected language.

For the first cut, we are enabling support for Tamil, a south-Indian language, which we have been using in our testing. The image below shows the Add Attribute form in Tamil.

You will be able to try the Tamil language in our Labs set up currently and the changes which will make it into the other deployments very soon.

Help translate iFreeTools and get a $90 discount* on your single-tenant deployment!

If your language is not already supported in iFreeTools Creator and if you are interested in helping us support the same, feel free to get in touch with us for the language mapping file. Once the translation is completed and imported into your single-tenant deployment, you should be able to have the application in your language.

Update : 

Spanish language support : 

Our effort to support multiple-languages was triggered by Ms.Belén Lara's detailed blog post on iFreeTools Creator, which is equivalent to a quick-start guide in Spanish : ...crear una Base de Datos on-line. iFreeTools.

After we added support for multiple languages, she has also provided the Spanish translation for the application. Coming from a technologically savvy database user, we believe her translations should work out well for the Spanish users of our application.

Thank you, Ms.Belén Lara!

Italian language support : 

We have rolled-in Italian language support in iFreeTools Creator, thanks to the efforts of Mr.Adriano Caresani. If you are looking to build your online database application and would like hire an Italian-speaking consultant, you should get in touch with Adriano.

Thank you, Adriano!

*Terms and conditions, for this offer :
  • The compensation for the translation mapping file, which will become a property of iFreeTools, will be provided in the form of discount to subscription fees alone.
  • This discount is applicable for one paid, single-tenant deployment and towards the first year subscription fee alone.
  • Even if the language mapping is already available with us, translation to popular country-specific dialects may still be eligible for a $45 discount.
The terms and conditions of this offer can be refined / altered / the offer itself might be withdrawn at any time. You are requested to kindly get in touch with us using the feedback form, to know if you can avail this offer.