Quickie: Modify Download Button

File-upload fields are one of many great features of AppGini-generated apps. In Table View (TV) and also in tables of children tabs in Detail View (DV) AppGini renders larger download buttons with blue default icon and no text, by default: In one of my projects, I wanted to change the appearance of that download button so that it matches the “Open” button (to the left of it) better, visually, and also add a caption for better usability. Example Default AppGini automatically renders a larger button with blue text-color (depending on your theme). Modified download button Same height as “open” button …

React to input field changes and change page title of Detail View

Here I will briefly show how you can react to <input/> field changes and modify the title of the detail view page. I assume that you have already integrated AppGiniHelper Javascript Library into your project. In an example project I have the following three fields: first_name middle_names last_name The Detail View looks like this by default: First I create a Javascript file for Detail View hooks. Because the table is called contacts, the javascript file must be called contacts-dv.js and must be located in the hooks directory. I need a function for getting the current values of those three fields …

Convert input into Calculator

I often use numeric fields for prices, taxes, etc. And often I use the Windows Calculator for side-calculations, for example, for converting from net to gross, from gross to net, for calculating VAT or for calculating discounts. With my new AppGini Calculator Component I am able to run side-calculations directly in my AppGini Detail View Form. Example Take a look at this part of my Orders Detail View. There is a subtotal field which is just numeric input by default. Parameter subtotal is the name of the field. After reloading the page there is a button now which will will …

SOLVED: “Remove image”-bug in AppGini > 5.9x – hooks-only solution

For some time there have been problems with deleting uploaded images. The bug seems to be still present in AppGini version 5.97. In this article I show a small help function to fix this problem. In the AppGini Forum a solution is shown which requires the modification of the files TABLENAME_dml.php. However, changes in these files are overwritten the next time they are generated. Here I show a solution that uses only hooks, which remain in place the next time they are generated. Problem In the past, uploaded images could be deleted by clicking the Remove image checkbox and then …

Solved: AppGini Database Backup Error on Windows

Have you also noticed that the database backup feature built into AppGini web applications does not work on Windows? The solution is quite simple, as I found out today. Read this post to see how we can solve this problem. Database Backup Maybe you have already seen the database backup function in the admin area of your AppGini application: Click the Create Backup File button, confirm the prompt and check if it works for you: Problem I don’t get any backup but I get the following error message: This is not only the case on your Windows development computer, but …

How to: Draw attention with flashing badge using pure CSS

In a project, I wanted to make users clearly aware that there are notes on a record. This is possible with a very simple CSS animation. You probably already know the so-called badges for the children tabs, in which the number of records is displayed. Instructions for this are available in the AppGini Udemy course, which many of us have booked and attended to get started. Our AppGini Helper Javascript Library has a function for this (included in compact function), which is described here. Those badges show the number or records. Anyway, if you want to draw a user’s attention …

Protect input fields against accidental overwriting

For the project I have already mentioned here and here, a barcode scanner is used for various tasks. If the input cursor is not in a search field, but in an input field, then the value of the field is overwritten by the scanned value or appended to the existing value. Sometimes this is on purpose, for example when creating a new record and assigning a Barcode to it. Most of the times overwriting an existing value by scanning a Barcode would cause data loss on save. To avoid this I have implemented a write protection for <input />-fields. When …

Notify other users about changes using “Toasts”

I programmed this feature for the same project, which was already briefly described here. It’s about physically sending files and tracking them via QR code. Since this project involves working across multiple facilities, I was looking for a way to notify employees at different locations of changes to a record without interrupting work too much. We all know the so-called “toast” notifications. I use these for this purpose. There are many javascript libraries for this. I decided on this one, which maps what I need for this: Toastr Detail View Suppose we are working on a data set. At the …

Autohide children-tabs, show on hover

If you, like me, like to make the most of the available space, then maybe this idea is something for you. Tracking Software In a small project, any file* can be sent (by delivery service) from one location to another location of the same organization and tracked using a QR code. * This project is all about physical document files, file-folders or boxes full of documents like court-files/court-records, which sometimes have to be physically sent to a different place. It is not about digital files. As a result, everyone involved across locations knows where which file is at any given …