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 …

New product: Indicators PHP library

Our latest product, AppGini Helper Indicators PHP Library is available now. Use it for appending indicators to you top navigation bar. Control text, icon, tooltip and coloured bullet with very little PHP code. There are built-in indicators like date and time which will get you started immediately. Read more here Pricing and ordering here